From a7bd14003b7566ff5fbc63adad7e1253da53efb8 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 9 Aug 2022 11:26:28 +0800 Subject: [PATCH] FIX: button handle navigation key event Change-Id: I60e367a32e5b76744e81180ee5dd6c3b30fd722f --- src/slic3r/GUI/Widgets/Button.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/slic3r/GUI/Widgets/Button.cpp b/src/slic3r/GUI/Widgets/Button.cpp index 7caa98a6f..8773e0315 100644 --- a/src/slic3r/GUI/Widgets/Button.cpp +++ b/src/slic3r/GUI/Widgets/Button.cpp @@ -253,7 +253,12 @@ void Button::keyDownUp(wxKeyEvent &event) GetEventHandler()->ProcessEvent(evt); return; } - event.Skip(); + if (event.GetEventType() == wxEVT_KEY_DOWN && + (event.GetKeyCode() == WXK_TAB || event.GetKeyCode() == WXK_LEFT || event.GetKeyCode() == WXK_RIGHT + || event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN)) + HandleAsNavigationKey(event); + else + event.Skip(); } void Button::sendButtonEvent() @@ -271,17 +276,10 @@ WXLRESULT Button::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) if (nMsg == WM_KEYDOWN) { wxKeyEvent event(CreateKeyEvent(wxEVT_KEY_DOWN, wParam, lParam)); switch (wParam) { - case WXK_RETURN: { + case WXK_RETURN: { // WXK_RETURN key is handled by default button GetEventHandler()->ProcessEvent(event); return 0; } - case WXK_TAB: - case WXK_LEFT: - case WXK_RIGHT: - case WXK_UP: - case WXK_DOWN: - if (HandleAsNavigationKey(event)) - return 0; } } return wxWindow::MSWWindowProc(nMsg, wParam, lParam);