[gnome-games/wip/exalm/ds: 34/37] ui: Process runner shortcuts



commit fe6e1be14076117d99cd00921cdec3ad6b3816c0
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Sat Jan 19 02:47:25 2019 +0500

    ui: Process runner shortcuts

 src/ui/display-box.vala  | 24 ++++++++++++++++++++++++
 src/ui/display-view.vala |  6 ++++++
 2 files changed, 30 insertions(+)
---
diff --git a/src/ui/display-box.vala b/src/ui/display-box.vala
index 97e96039..1162066c 100644
--- a/src/ui/display-box.vala
+++ b/src/ui/display-box.vala
@@ -70,4 +70,28 @@ private class Games.DisplayBox : Gtk.Bin {
                if (child != null)
                        display_bin.remove (child);
        }
+
+       public bool on_key_press_event (Gdk.EventKey event) {
+               if (!get_mapped ())
+                       return false;
+
+               if (runner == null)
+                       return false;
+
+               return runner.key_press_event (event);
+       }
+
+       public bool gamepad_button_press_event (Manette.Event event) {
+               if (!get_mapped ())
+                       return false;
+
+               if (runner == null)
+                       return false;
+
+               uint16 button;
+               if (!event.get_button (out button))
+                       return false;
+
+               return runner.gamepad_button_press_event (button);
+       }
 }
diff --git a/src/ui/display-view.vala b/src/ui/display-view.vala
index ad008a4e..d4859feb 100644
--- a/src/ui/display-view.vala
+++ b/src/ui/display-view.vala
@@ -89,6 +89,9 @@ private class Games.DisplayView : Object, UiView {
        public bool on_key_pressed (Gdk.EventKey event) {
                var default_modifiers = Gtk.accelerator_get_default_mod_mask ();
 
+               if (box.on_key_press_event (event))
+                       return true;
+
                if ((event.keyval == Gdk.Key.f || event.keyval == Gdk.Key.F) &&
                    (event.state & default_modifiers) == Gdk.ModifierType.CONTROL_MASK &&
                    header_bar.can_fullscreen) {
@@ -140,6 +143,9 @@ private class Games.DisplayView : Object, UiView {
                if (!event.get_button (out button))
                        return false;
 
+               if (box.gamepad_button_press_event (event))
+                       return true;
+
                switch (button) {
                case EventCode.BTN_MODE:
                        back ();


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]