[gnome-games] display-box: Don't pass event directly to on_key_press_event()



commit 52a6b48683f959c2be884e6f31f52881cc36416d
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Thu Aug 15 00:40:53 2019 +0500

    display-box: Don't pass event directly to on_key_press_event()
    
    Instead, pass keyval and state.
    
    Since DisplayView corrects keyval, this means that Nintendo DS shortcuts
    are now layout-independent.
    
    See https://gitlab.gnome.org/GNOME/gnome-games/commit/a378f4b80154e78222341692edda419d046f20b2

 src/ui/display-box.vala  | 6 ++----
 src/ui/display-view.vala | 6 +++---
 2 files changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/src/ui/display-box.vala b/src/ui/display-box.vala
index c2d786aa..e511d317 100644
--- a/src/ui/display-box.vala
+++ b/src/ui/display-box.vala
@@ -104,16 +104,14 @@ private class Games.DisplayBox : Gtk.Bin {
                        display_bin.remove (child);
        }
 
-       public bool on_key_press_event (Gdk.EventKey event) {
+       public bool on_key_press_event (uint keyval, uint status) {
                if (!get_mapped ())
                        return false;
 
                if (runner == null)
                        return false;
 
-               var default_modifiers = Gtk.accelerator_get_default_mod_mask ();
-
-               return runner.key_press_event (event.keyval, event.state & default_modifiers);
+               return runner.key_press_event (keyval, status);
        }
 
        public bool gamepad_button_press_event (Manette.Event event) {
diff --git a/src/ui/display-view.vala b/src/ui/display-view.vala
index adf874ef..bbb25ca5 100644
--- a/src/ui/display-view.vala
+++ b/src/ui/display-view.vala
@@ -94,15 +94,15 @@ 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;
-
                uint keyval;
                var keymap = Gdk.Keymap.get_for_display (window.get_display ());
                keymap.translate_keyboard_state (event.hardware_keycode, event.state,
                                                 event.group, out keyval, null, null, null);
                var ctrl_pressed = (event.state & default_modifiers) == Gdk.ModifierType.CONTROL_MASK;
 
+               if (box.on_key_press_event (keyval, event.state & default_modifiers))
+                       return true;
+
                if ((keyval == Gdk.Key.f || keyval == Gdk.Key.F) && ctrl_pressed &&
                    header_bar.can_fullscreen && !savestates_list_state.is_revealed) {
                        is_fullscreen = !is_fullscreen;


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