X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/82bf23ce3cf040b8c5ab05d7e62d216f4bd56dd7..43c42c18d36c703a88b1b7b697bac27fe5608eca:/src/msw/window.cpp diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 65dd568e9c..c614dca82d 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -3433,6 +3433,12 @@ wxWindowMSW::MSWHandleMessage(WXLRESULT *result, #if !defined(__WXWINCE__) case WM_CONTEXTMENU: { + // As with WM_HELP above, this message is propagated upwards + // the parent chain by DefWindowProc() itself, so we should + // always mark it as processed to prevent it from doing this + // as this would result in duplicate calls to event handlers. + processed = true; + // we don't convert from screen to client coordinates as // the event may be handled by a parent window wxPoint pt(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)); @@ -3452,7 +3458,7 @@ wxWindowMSW::MSWHandleMessage(WXLRESULT *result, win = this; evtCtx.SetEventObject(win); - processed = win->HandleWindowEvent(evtCtx); + win->HandleWindowEvent(evtCtx); } break; #endif @@ -5291,10 +5297,10 @@ bool wxWindowMSW::HandleCommand(WXWORD id_, WXWORD cmd, WXHWND control) // the messages sent from the in-place edit control used by the treectrl // for label editing have id == 0, but they should _not_ be treated as menu // messages (they are EN_XXX ones, in fact) so don't translate anything - // coming from a control to wxEVT_COMMAND_MENU_SELECTED + // coming from a control to wxEVT_MENU if ( !control ) { - wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id); + wxCommandEvent event(wxEVT_MENU, id); event.SetEventObject(this); event.SetInt(id); @@ -5859,9 +5865,9 @@ int wxWindowMSW::HandleMenuChar(int WXUNUSED_IN_WINCE(chAccel), bool wxWindowMSW::HandleClipboardEvent(WXUINT nMsg) { - const wxEventType type = nMsg == WM_CUT ? wxEVT_COMMAND_TEXT_CUT - : nMsg == WM_COPY ? wxEVT_COMMAND_TEXT_COPY - : /* nMsg == WM_PASTE */ wxEVT_COMMAND_TEXT_PASTE; + const wxEventType type = nMsg == WM_CUT ? wxEVT_TEXT_CUT + : nMsg == WM_COPY ? wxEVT_TEXT_COPY + : /* nMsg == WM_PASTE */ wxEVT_TEXT_PASTE; wxClipboardTextEvent evt(type, GetId()); evt.SetEventObject(this); @@ -7306,8 +7312,6 @@ bool wxWindowMSW::UnregisterHotKey(int hotkeyId) return true; } -#if wxUSE_ACCEL - bool wxWindowMSW::HandleHotKey(WXWPARAM wParam, WXLPARAM lParam) { int win_modifiers = LOWORD(lParam); @@ -7322,8 +7326,6 @@ bool wxWindowMSW::HandleHotKey(WXWPARAM wParam, WXLPARAM lParam) return HandleWindowEvent(event); } -#endif // wxUSE_ACCEL - #endif // wxUSE_HOTKEY // Not tested under WinCE