diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 4158923abf..6f77cf0da4 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -2597,27 +2597,25 @@ BWindow::_SanitizeMessage(BMessage* message, BHandler* target, bool usePreferred (void**)&handler) == B_OK) viewUnderMouse = dynamic_cast(handler); } - + // add transit information int32 transit; - if (message->FindInt32("be:transit", &transit) != B_OK) { - if (viewUnderMouse == view) { - // the mouse is over the target view - if (fLastMouseMovedView != view) - transit = B_ENTERED_VIEW; - else - transit = B_INSIDE_VIEW; - } else { - // the mouse is not over the target view - if (view == fLastMouseMovedView) - transit = B_EXITED_VIEW; - else - transit = B_OUTSIDE_VIEW; - } - - message->AddInt32("be:transit", transit); + if (viewUnderMouse == view) { + // the mouse is over the target view + if (fLastMouseMovedView != view) + transit = B_ENTERED_VIEW; + else + transit = B_INSIDE_VIEW; + } else { + // the mouse is not over the target view + if (view == fLastMouseMovedView) + transit = B_EXITED_VIEW; + else + transit = B_OUTSIDE_VIEW; } + message->AddInt32("be:transit", transit); + if (usePreferred || viewUnderMouse == NULL) fLastMouseMovedView = viewUnderMouse; }