From 20bdddadd5659e9fd150477384a4852ee24f37ff Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Fri, 16 Nov 2007 13:12:20 +0000 Subject: [PATCH] Don't suppress accelerators that include Enter just because a tree control is focused git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/treectrl.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index d705b7e6a8..20d027fbcd 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -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; } } -- 2.45.2