[gnome-games] display-box: Don't pass event directly to on_key_press_event()
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] display-box: Don't pass event directly to on_key_press_event()
- Date: Wed, 14 Aug 2019 19:51:29 +0000 (UTC)
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]