Don't trust the app_server that the view token under the mouse belongs to the
current looper. This needs an investigation in the app_server, as that probably shouldn't happen? (well, I wrote that part, I should know better) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15154 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2448,7 +2448,8 @@ BWindow::_DetermineTarget(BMessage *message, BHandler *target)
|
||||
if (message->FindInt32("_view_token", &token) == B_OK) {
|
||||
BHandler* handler;
|
||||
if (gDefaultTokens.GetToken(token, B_HANDLER_TOKEN,
|
||||
(void**)&handler) == B_OK) {
|
||||
(void**)&handler) == B_OK
|
||||
&& handler->Looper() == this) {
|
||||
BView* view = dynamic_cast<BView*>(handler);
|
||||
if (view != NULL)
|
||||
return view;
|
||||
@@ -2594,7 +2595,8 @@ BWindow::_SanitizeMessage(BMessage* message, BHandler* target, bool usePreferred
|
||||
if (message->FindInt32("_view_token", &token) == B_OK) {
|
||||
BHandler* handler;
|
||||
if (gDefaultTokens.GetToken(token, B_HANDLER_TOKEN,
|
||||
(void**)&handler) == B_OK)
|
||||
(void**)&handler) == B_OK
|
||||
&& handler->Looper() == this)
|
||||
viewUnderMouse = dynamic_cast<BView*>(handler);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user