Browse Source

LibGUI: Use on_up_pressed/on_down_pressed events in SpinBox

Fixes keyboard increment/decrement of SpinBox values.

After PR #2412 the TextBox class started not propagating arrow key
events to the parent widgets because it handles them itself now.
It also added two new events for these arrow keys, so use them instead
in SpinBox.
Tibor Nagy 4 years ago
parent
commit
1fa5a526e8
2 changed files with 6 additions and 15 deletions
  1. 6 14
      Libraries/LibGUI/SpinBox.cpp
  2. 0 1
      Libraries/LibGUI/SpinBox.h

+ 6 - 14
Libraries/LibGUI/SpinBox.cpp

@@ -41,6 +41,12 @@ SpinBox::SpinBox()
         else
         else
             m_editor->set_text(String::number(m_value));
             m_editor->set_text(String::number(m_value));
     };
     };
+    m_editor->on_up_pressed = [this] {
+        set_value(m_value + 1);
+    };
+    m_editor->on_down_pressed = [this] {
+        set_value(m_value - 1);
+    };
 
 
     m_increment_button = add<ControlBoxButton>(ControlBoxButton::UpArrow);
     m_increment_button = add<ControlBoxButton>(ControlBoxButton::UpArrow);
     m_increment_button->set_focusable(false);
     m_increment_button->set_focusable(false);
@@ -88,20 +94,6 @@ void SpinBox::set_range(int min, int max)
     update();
     update();
 }
 }
 
 
-void SpinBox::keydown_event(KeyEvent& event)
-{
-    if (event.key() == KeyCode::Key_Up) {
-        set_value(m_value + 1);
-        return;
-    }
-    if (event.key() == KeyCode::Key_Down) {
-        set_value(m_value - 1);
-        return;
-    }
-
-    event.ignore();
-}
-
 void SpinBox::mousewheel_event(MouseEvent& event)
 void SpinBox::mousewheel_event(MouseEvent& event)
 {
 {
     set_value(m_value - event.wheel_delta());
     set_value(m_value - event.wheel_delta());

+ 0 - 1
Libraries/LibGUI/SpinBox.h

@@ -51,7 +51,6 @@ public:
 protected:
 protected:
     SpinBox();
     SpinBox();
 
 
-    virtual void keydown_event(KeyEvent&) override;
     virtual void mousewheel_event(MouseEvent&) override;
     virtual void mousewheel_event(MouseEvent&) override;
     virtual void resize_event(ResizeEvent&) override;
     virtual void resize_event(ResizeEvent&) override;