From 0d13755c90c871a75f519cfd14d8693a8815b76e Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 5 Dec 2023 11:28:29 +0100 Subject: [PATCH] New ComboBox : Fix for #11817 - Arrow keys advance Preset Listboxes but do not activate the Preset or update Preset Values --- src/slic3r/GUI/Widgets/ComboBox.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/Widgets/ComboBox.cpp b/src/slic3r/GUI/Widgets/ComboBox.cpp index 7937be66de..055971571a 100644 --- a/src/slic3r/GUI/Widgets/ComboBox.cpp +++ b/src/slic3r/GUI/Widgets/ComboBox.cpp @@ -308,16 +308,12 @@ void ComboBox::keyDown(wxKeyEvent& event) { int key_code = event.GetKeyCode(); switch (key_code) { - case WXK_RETURN: + case WXK_RETURN: { if (drop_down) { drop.DismissAndNotify(); - - wxCommandEvent e(wxEVT_COMBOBOX); - e.SetEventObject(this); - e.SetId(GetId()); - e.SetInt(GetSelection()); - GetEventHandler()->ProcessEvent(e); - } else if (drop.HasDismissLongTime()) { + sendComboBoxEvent(); + } + else if (drop.HasDismissLongTime()) { drop.autoPosition(); drop_down = true; drop.Popup(); @@ -325,14 +321,19 @@ void ComboBox::keyDown(wxKeyEvent& event) GetEventHandler()->ProcessEvent(e); } break; + } case WXK_UP: { if (GetSelection() > 0) SetSelection(GetSelection() - 1); + if (!drop.IsShown()) + sendComboBoxEvent(); break; } case WXK_DOWN: { if (GetSelection() + 1 < int(texts.size())) SetSelection(GetSelection() + 1); + if (!drop.IsShown()) + sendComboBoxEvent(); break; } case WXK_LEFT: {