diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 48a4872177..8c824c0d95 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -771,7 +771,14 @@ BWindow::DispatchMessage(BMessage *msg, BHandler *target) msg->FindInt32("transit", (int32 *)&transit); if (target && target != this && target != top_view) { if (BView *view = dynamic_cast(target)) { - fLastMouseMovedView = view; + if (fLastMouseMovedView != view) { + if (fLastMouseMovedView) { + BPoint p(where); + fLastMouseMovedView->ConvertFromScreen(&p); + fLastMouseMovedView->MouseMoved(p, B_EXITED_VIEW, NULL); + } + fLastMouseMovedView = view; + } view->ConvertFromScreen(&where); view->MouseMoved(where, transit, NULL); } else