diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-14 22:27:41 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-22 20:26:25 +0100 |
commit | 944b99f3a2e87a080666174dc1e2e2b543519904 (patch) | |
tree | 6d6feb616c2fbf614335ef8b5811c9513cecff1b | |
parent | 44df7c0ebfef37e78be75407f490c1bb1ffb03b4 (diff) | |
download | mana-944b99f3a2e87a080666174dc1e2e2b543519904.tar.gz mana-944b99f3a2e87a080666174dc1e2e2b543519904.tar.bz2 mana-944b99f3a2e87a080666174dc1e2e2b543519904.tar.xz mana-944b99f3a2e87a080666174dc1e2e2b543519904.zip |
Fixed the distribution of action events by DropDown
It did not distribute them when the value of the DropDown was changed by
key events or mouse wheel.
-rw-r--r-- | src/gui/widgets/dropdown.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gui/widgets/dropdown.cpp b/src/gui/widgets/dropdown.cpp index a4b02fe5..c548570d 100644 --- a/src/gui/widgets/dropdown.cpp +++ b/src/gui/widgets/dropdown.cpp @@ -196,7 +196,8 @@ void DropDown::keyPressed(gcn::KeyEvent& keyEvent) if (keyEvent.isConsumed()) return; - gcn::Key key = keyEvent.getKey(); + const gcn::Key key = keyEvent.getKey(); + const int selectedIndex = getSelected(); if (key.getValue() == Key::ENTER || key.getValue() == Key::SPACE) dropDown(); @@ -212,6 +213,9 @@ void DropDown::keyPressed(gcn::KeyEvent& keyEvent) return; keyEvent.consume(); + + if (getSelected() != selectedIndex) + distributeActionEvent(); } void DropDown::focusLost(const gcn::Event& event) @@ -240,10 +244,12 @@ void DropDown::mouseWheelMovedUp(gcn::MouseEvent& mouseEvent) { setSelected(getSelected() - 1); mouseEvent.consume(); + distributeActionEvent(); } void DropDown::mouseWheelMovedDown(gcn::MouseEvent& mouseEvent) { setSelected(getSelected() + 1); mouseEvent.consume(); + distributeActionEvent(); } |