X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/42f25dcfc725bea1ec5cc634af28cad26f34d39e..052d2fc5818243dadbc1ec54b1120e295304fc55:/src/msw/window.cpp diff --git a/src/msw/window.cpp b/src/msw/window.cpp index bcad284c87..6f277cec40 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2498,19 +2498,23 @@ WXLRESULT wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM l // this should never happen wxCHECK_MSG( win, 0, _T("FindWindowForMouseEvent() returned NULL") ); + } + + processed = win->HandleMouseEvent(message, x, y, wParam); + // if the app didn't eat the event, handle it in the default + // way, that is by giving this window the focus + if ( !processed ) + { // for the standard classes their WndProc sets the focus to // them anyhow and doing it from here results in some weird - // problems, but for our windows we want them to acquire - // focus when clicked + // problems, so don't do it for them (unnecessary anyhow) if ( !win->IsOfStandardClass() ) { if ( message == WM_LBUTTONDOWN && win->AcceptsFocus() ) win->SetFocus(); } } - - processed = win->HandleMouseEvent(message, x, y, wParam); } break; @@ -4416,7 +4420,7 @@ static wxWindowMSW *FindWindowForMouseEvent(wxWindowMSW *win, int *x, int *y) // bool wxWindowMSW::HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags) { // the mouse events take consecutive IDs from WM_MOUSEFIRST to - // WM_MOUSELAST, so it's enough to substract WM_MOUSEMOVE == WM_MOUSEFIRST + // WM_MOUSELAST, so it's enough to subtract WM_MOUSEMOVE == WM_MOUSEFIRST // from the message id and take the value in the table to get wxWin event // id static const wxEventType eventsMouse[] =