Browse Source

GButton: Allow triggering a "click" by pressing Return when focused.

Andreas Kling 6 years ago
parent
commit
65e56eb72b
2 changed files with 9 additions and 0 deletions
  1. 8 0
      LibGUI/GButton.cpp
  2. 1 0
      LibGUI/GButton.h

+ 8 - 0
LibGUI/GButton.cpp

@@ -3,6 +3,7 @@
 #include <SharedGraphics/StylePainter.h>
 #include <AK/StringBuilder.h>
 #include <LibGUI/GAction.h>
+#include <Kernel/KeyCode.h>
 
 //#define GBUTTON_DEBUG
 
@@ -158,3 +159,10 @@ void GButton::set_icon(RetainPtr<GraphicsBitmap>&& icon)
     m_icon = move(icon);
     update();
 }
+
+void GButton::keydown_event(GKeyEvent& event)
+{
+    if (event.key() == KeyCode::Key_Return)
+        click();
+    GWidget::keydown_event(event);
+}

+ 1 - 0
LibGUI/GButton.h

@@ -49,6 +49,7 @@ protected:
     virtual void mousemove_event(GMouseEvent&) override;
     virtual void enter_event(CEvent&) override;
     virtual void leave_event(CEvent&) override;
+    virtual void keydown_event(GKeyEvent&) override;
 
 private:
     String m_caption;