X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c8026dea6cf102fb741f132142f9d6584d3e0cef..f46ad98f0df1e1b073a484cb34a91e2e1278fdb7:/src/msw/evtloop.cpp diff --git a/src/msw/evtloop.cpp b/src/msw/evtloop.cpp index 805fb95ef4..37b2eba9a4 100644 --- a/src/msw/evtloop.cpp +++ b/src/msw/evtloop.cpp @@ -141,11 +141,10 @@ bool wxEventLoop::PreProcessMessage(WXMSG *msg) // popup the tooltip bubbles if ( msg->message == WM_MOUSEMOVE ) { - wxToolTip *tt = wndThis->GetToolTip(); - if ( tt ) - { - tt->RelayEvent((WXMSG *)msg); - } + // we should do it if one of window children has an associated tooltip + // (and not just if the window has a tooltip itself) + if ( wndThis->HasToolTips() ) + wxToolTip::RelayEvent((WXMSG *)msg); } #endif // wxUSE_TOOLTIPS @@ -173,16 +172,14 @@ bool wxEventLoop::PreProcessMessage(WXMSG *msg) // now try the other hooks (kbd navigation is handled here) for ( wnd = wndThis; wnd; wnd = wnd->GetParent() ) { - if (wnd != wndThis) // Skip the first since wndThis->MSWProcessMessage() was called above - { - if ( wnd->MSWProcessMessage((WXMSG *)msg) ) - return true; - } + if ( wnd->MSWProcessMessage((WXMSG *)msg) ) + return true; - // Stop at first top level window (as per comment above). - // If we don't do this, pressing ESC on a modal dialog shown as child of a modal - // dialog with wxID_CANCEL will cause the parent dialog to be closed, for example - if (wnd->IsTopLevel()) + // also stop at first top level window here, just as above because + // if we don't do this, pressing ESC on a modal dialog shown as child + // of a modal dialog with wxID_CANCEL will cause the parent dialog to + // be closed, for example + if ( wnd->IsTopLevel() ) break; }