BMessages which reach BWindow now take full advantage of application_kit's power in sending BMessages to BHandlers
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11282 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
7b76dd8073
commit
0b9056c784
@ -1301,9 +1301,8 @@ void RootLayer::KeyboardEventHandler(int32 code, BPortLink& msg)
|
||||
}
|
||||
keymsg.AddString("bytes",string);
|
||||
// keymsg.AddInt32("raw_char",raw_char);
|
||||
keymsg.AddInt32("haiku:token", target->fViewToken);
|
||||
|
||||
win->SendMessageToClient(&keymsg);
|
||||
win->SendMessageToClient(&keymsg, B_NULL_TOKEN, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1397,9 +1396,8 @@ void RootLayer::KeyboardEventHandler(int32 code, BPortLink& msg)
|
||||
}
|
||||
keymsg.AddString("bytes",string);
|
||||
keymsg.AddInt32("raw_char",raw_char);
|
||||
keymsg.AddInt32("haiku:token", target->fViewToken);
|
||||
|
||||
win->SendMessageToClient(&keymsg);
|
||||
win->SendMessageToClient(&keymsg, B_NULL_TOKEN, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,6 +51,7 @@
|
||||
#include "DisplayDriver.h"
|
||||
#include "ServerPicture.h"
|
||||
#include "Workspace.h"
|
||||
#include "MessagePrivate.h"
|
||||
|
||||
//#define DEBUG_SERVERWINDOW
|
||||
//#define DEBUG_SERVERWINDOW_MOUSE
|
||||
@ -2285,16 +2286,17 @@ Layer* ServerWindow::FindLayer(const Layer* start, int32 token) const
|
||||
return NULL;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void ServerWindow::SendMessageToClient(const BMessage* msg) const
|
||||
void ServerWindow::SendMessageToClient(const BMessage* msg, int32 target, bool usePreferred) const
|
||||
{
|
||||
ssize_t size;
|
||||
char *buffer;
|
||||
|
||||
|
||||
size = msg->FlattenedSize();
|
||||
buffer = new char[size];
|
||||
|
||||
if (msg->Flatten(buffer, size) == B_OK)
|
||||
write_port(fClientLooperPort, msg->what, buffer, size);
|
||||
BMessage::Private::SendFlattenedMessage(buffer, size,
|
||||
fClientLooperPort, target, usePreferred, B_INFINITE_TIMEOUT);
|
||||
else
|
||||
printf("PANIC: ServerWindow %s: can't flatten message in 'SendMessageToClient()'\n", fTitle.String());
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include <Window.h>
|
||||
#include <LinkMsgReader.h>
|
||||
#include <LinkMsgSender.h>
|
||||
#include "TokenSpace.h"
|
||||
#include "FMWList.h"
|
||||
|
||||
class BString;
|
||||
@ -96,7 +97,9 @@ public:
|
||||
|
||||
// util methods.
|
||||
Layer *FindLayer(const Layer *start, int32 token) const;
|
||||
void SendMessageToClient( const BMessage *msg ) const;
|
||||
void SendMessageToClient(const BMessage* msg,
|
||||
int32 target = B_NULL_TOKEN,
|
||||
bool usePreferred = false) const;
|
||||
|
||||
// a few, not that important methods returning some internal settings.
|
||||
int32 Look(void) const { return fLook; }
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <Debug.h>
|
||||
#include "PortLink.h"
|
||||
#include "View.h" // for mouse button defines
|
||||
#include "MessagePrivate.h"
|
||||
#include "ServerWindow.h"
|
||||
#include "Decorator.h"
|
||||
#include "DisplayDriver.h"
|
||||
@ -41,7 +42,6 @@
|
||||
#include "Globals.h"
|
||||
#include "RootLayer.h"
|
||||
#include "Workspace.h"
|
||||
#include "TokenSpace.h"
|
||||
|
||||
// Toggle general function call output
|
||||
//#define DEBUG_WINBORDER
|
||||
@ -229,9 +229,8 @@ void WinBorder::MouseDown(PointerEvent& evt, bool sendMessage)
|
||||
msg.AddInt32("modifiers", evt.modifiers);
|
||||
msg.AddInt32("buttons", evt.buttons);
|
||||
msg.AddInt32("clicks", evt.clicks);
|
||||
msg.AddInt32("haiku:token", target? target->fViewToken: B_NULL_TOKEN);
|
||||
|
||||
Window()->SendMessageToClient(&msg);
|
||||
Window()->SendMessageToClient(&msg, target->fViewToken, false);
|
||||
}
|
||||
|
||||
fLastMousePosition = evt.where;
|
||||
@ -368,9 +367,8 @@ void WinBorder::MouseUp(PointerEvent& evt)
|
||||
upmsg.AddInt64("when",evt.when);
|
||||
upmsg.AddPoint("where",evt.where);
|
||||
upmsg.AddInt32("modifiers",evt.modifiers);
|
||||
upmsg.AddInt32("haiku:token", target? target->fViewToken: B_NULL_TOKEN);
|
||||
|
||||
Window()->SendMessageToClient(&upmsg);
|
||||
Window()->SendMessageToClient(&upmsg, target->fViewToken, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user