]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't suppress accelerators that include Enter just because a tree control is focused
authorJulian Smart <julian@anthemion.co.uk>
Fri, 16 Nov 2007 13:12:20 +0000 (13:12 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 16 Nov 2007 13:12:20 +0000 (13:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/treectrl.cpp

index d705b7e6a85f3c91b2094a1a9f849299d2a9c172..20d027fbcd60d9b24aea1a467bfad7a9e982659c 100644 (file)
@@ -1948,7 +1948,11 @@ bool wxTreeCtrl::MSWShouldPreProcessMessage(WXMSG* msg)
 {
     if ( msg->message == WM_KEYDOWN )
     {
-        if ( msg->wParam == VK_RETURN )
+        const bool isAltDown = ::GetKeyState(VK_MENU) < 0;
+
+        // Only eat VK_RETURN if not being used by the application in conjunction with
+        // modifiers
+        if ( msg->wParam == VK_RETURN && !wxIsCtrlDown() && !wxIsShiftDown() && !isAltDown)
         {
             // we need VK_RETURN to generate wxEVT_COMMAND_TREE_ITEM_ACTIVATED
             return false;
@@ -2164,7 +2168,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara
 
                     // fire EVT_RIGHT_DOWN
                     HandleMouseEvent(nMsg, x, y, wParam);
-                    
+
                     // send NM_RCLICK
                     NMHDR nmhdr;
                     nmhdr.hwndFrom = GetHwnd();
@@ -2174,7 +2178,7 @@ WXLRESULT wxTreeCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPara
                                   nmhdr.idFrom, (LPARAM)&nmhdr);
 
                     // prevent tree control default processing, as we've
-                    // already done everything                   
+                    // already done everything
                     processed = true;
                 }
                 break;
@@ -2640,7 +2644,7 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
         // Vista's tree control has introduced some problems with our
         // multi-selection tree.  When TreeView_SelectItem() is called,
         // the wrong items are deselected.
-        
+
         // Fortunately, Vista provides a new notification, TVN_ITEMCHANGING
         // that can be used to regulate this incorrect behavior.  The
         // following messages will allow only the unlocked item's selection
@@ -2657,7 +2661,7 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                     {
                         // item's state is locked, don't allow the change
                         // returning 1 will disallow the change
-                        *result = 1; 
+                        *result = 1;
                         return true;
                     }
                 }