X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..d23ec02c6ab52f60349601be999bab4cf6acbdc4:/src/common/popupcmn.cpp diff --git a/src/common/popupcmn.cpp b/src/common/popupcmn.cpp index 09ca583c04..3d9f7b0b8d 100644 --- a/src/common/popupcmn.cpp +++ b/src/common/popupcmn.cpp @@ -188,7 +188,7 @@ wxPopupTransientWindow::~wxPopupTransientWindow() { if (m_handlerPopup && m_handlerPopup->GetNextHandler()) PopHandlers(); - + wxASSERT(!m_handlerFocus || !m_handlerFocus->GetNextHandler()); wxASSERT(!m_handlerPopup || !m_handlerPopup->GetNextHandler()); @@ -207,7 +207,7 @@ void wxPopupTransientWindow::PopHandlers() m_handlerPopup = NULL; } if (m_child->HasCapture()) - { + { m_child->ReleaseMouse(); } m_child = NULL; @@ -290,11 +290,11 @@ bool wxPopupTransientWindow::Show( bool show ) #ifdef __WXMSW__ if (!show && m_child && m_child->HasCapture()) - { + { m_child->ReleaseMouse(); } #endif - + bool ret = wxPopupWindow::Show( show ); #ifdef __WXGTK__ @@ -387,10 +387,10 @@ void wxPopupTransientWindow::OnIdle(wxIdleEvent& event) { m_child->CaptureMouse(); } - } + } } } -#endif +#endif // __WXMSW__ #if wxUSE_COMBOBOX && defined(__WXUNIVERSAL__) @@ -462,8 +462,11 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event) wxPoint pos = event.GetPosition(); + // in non-Univ ports the system manages scrollbars for us +#ifdef __WXUNIVERSAL__ // scrollbar on which the click occurred wxWindow *sbar = NULL; +#endif // __WXUNIVERSAL__ wxWindow *win = (wxWindow *)event.GetEventObject(); @@ -483,15 +486,15 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event) // dismissing a tooltip shouldn't waste a click, i.e. you // should be able to dismiss it and press the button with the // same click, so repost this event to the window beneath us - wxWindow *win = wxFindWindowAtPoint(event2.GetPosition()); - if ( win ) + wxWindow *winUnder = wxFindWindowAtPoint(event2.GetPosition()); + if ( winUnder ) { // translate the event coords to the ones of the window // which is going to get the event - win->ScreenToClient(&event2.m_x, &event2.m_y); + winUnder->ScreenToClient(&event2.m_x, &event2.m_y); - event2.SetEventObject(win); - wxPostEvent(win, event2); + event2.SetEventObject(winUnder); + wxPostEvent(winUnder, event2); } } break; @@ -504,7 +507,7 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event) case wxHT_WINDOW_VERT_SCROLLBAR: sbar = win->GetScrollbar(wxVERTICAL); break; -#endif +#endif // __WXUNIVERSAL__ default: // forgot to update the switch after adding a new hit test code? @@ -521,6 +524,7 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event) break; } +#ifdef __WXUNIVERSAL__ if ( sbar ) { // translate the event coordinates to the scrollbar ones @@ -533,6 +537,7 @@ void wxPopupWindowHandler::OnLeftDown(wxMouseEvent& event) (void)sbar->GetEventHandler()->ProcessEvent(event2); } +#endif // __WXUNIVERSAL__ } // ----------------------------------------------------------------------------