From: Robert Roebling Date: Sat, 5 May 2007 13:15:47 +0000 (+0000) Subject: Apply [ 1713345 ] combobox: cmd accelerators shouldn't steal editing hotkeys X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/90ac8b50051f0ba0ff92a159f9bc97db80024910?ds=inline Apply [ 1713345 ] combobox: cmd accelerators shouldn't steal editing hotkeys git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/msw/combobox.h b/include/wx/msw/combobox.h index a99ec2fee8..214b5a4a3c 100644 --- a/include/wx/msw/combobox.h +++ b/include/wx/msw/combobox.h @@ -105,7 +105,8 @@ public: virtual bool MSWCommand(WXUINT param, WXWORD id); bool MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam); virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - + bool MSWShouldPreProcessMessage(WXMSG *pMsg); + WXHWND GetEditHWND() const; // Standard event handling diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index fca1afd0ca..e6e3af1bd4 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -367,6 +367,30 @@ bool wxComboBox::MSWCommand(WXUINT param, WXWORD id) return true; } +bool wxComboBox::MSWShouldPreProcessMessage(WXMSG *pMsg) +{ + // prevent command accelerators from stealing editing + // hotkeys when we have the focus + if (wxIsCtrlDown()) + { + WPARAM vkey = pMsg->wParam; + + switch (vkey) + { + case 'C': + case 'V': + case 'X': + case VK_INSERT: + case VK_DELETE: + case VK_HOME: + case VK_END: + return false; + } + } + + return wxChoice::MSWShouldPreProcessMessage(pMsg); +} + WXHWND wxComboBox::GetEditHWND() const { // this function should not be called for wxCB_READONLY controls, it is