From 238ba7d32153037f6bcb218f50d07b4c14f4aae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 11 Jan 2006 22:38:43 +0000 Subject: [PATCH] The last change accidently put messages to invalid targets back into the game. _DetermineTarget() is no longer called for these messages, "handler" will stay NULL and the message will be dropped. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15921 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Window.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 96792fe9e5..8e9de78028 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -2284,13 +2284,11 @@ BWindow::task_looper() // dispatch loop. dispatchNextMessage = false; } else { - // Get the target handler - BHandler *handler = NULL; - // Use the private BMessage accessor to determine if we are - // using the preferred handler, or if a target has been - // specified + // Get the target handler BMessage::Private messagePrivate(fLastMessage); bool usePreferred = messagePrivate.UsePreferredTarget(); + BHandler *handler = NULL; + bool dropMessage = false; if (usePreferred) { handler = PreferredHandler(); @@ -2301,11 +2299,13 @@ BWindow::task_looper() B_HANDLER_TOKEN, (void **)&handler); // if this handler doesn't belong to us, we drop the message - if (handler != NULL && handler->Looper() != this) + if (handler != NULL && handler->Looper() != this) { + dropMessage = true; handler = NULL; + } } - if (handler == NULL || usePreferred) + if ((handler == NULL && !dropMessage) || usePreferred) handler = _DetermineTarget(fLastMessage, handler); unpack_cookie cookie;