From: Vadim Zeitlin Date: Fri, 30 Aug 2002 21:30:28 +0000 (+0000) Subject: don't eat Shift-Ctrl-[XCV] keys X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/cf6e951cf203ace5f8cffb91ece08f18f23ccac2?ds=sidebyside don't eat Shift-Ctrl-[XCV] keys git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 8d172ea35f..6e285fabad 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -1189,24 +1189,42 @@ bool wxTextCtrl::MSWShouldPreProcessMessage(WXMSG* pMsg) } else // no Alt { - if ( wxIsCtrlDown() ) + // we want to process some Ctrl-foo and Shift-bar but no key + // combinations without either Ctrl or Shift nor with both of them + // pressed + const int ctrl = wxIsCtrlDown(), + shift = wxIsShiftDown(); + switch ( ctrl + shift ) { - switch ( vkey ) - { - case 'C': - case 'V': - case 'X': - case VK_INSERT: - case VK_DELETE: - case VK_HOME: - case VK_END: - return FALSE; - } - } - else if ( wxIsShiftDown() ) - { - if ( vkey == VK_INSERT || vkey == VK_DELETE ) - return FALSE; + default: + wxFAIL_MSG( _T("how many modifiers have we got?") ); + // fall through + + case 0: + case 2: + break; + + case 1: + // either Ctrl or Shift pressed + if ( ctrl ) + { + switch ( vkey ) + { + case 'C': + case 'V': + case 'X': + case VK_INSERT: + case VK_DELETE: + case VK_HOME: + case VK_END: + return FALSE; + } + } + else // Shift is pressed + { + if ( vkey == VK_INSERT || vkey == VK_DELETE ) + return FALSE; + } } } }