[swell-foop/arnaudb/code-improvements: 5/9] Use EventControllerKey.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [swell-foop/arnaudb/code-improvements: 5/9] Use EventControllerKey.
- Date: Sat, 2 May 2020 15:39:42 +0000 (UTC)
commit 0beb13fffce04a9e1c131b42df6b80d8932a104c
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Sat May 2 15:51:52 2020 +0200
Use EventControllerKey.
Bump Gtk requires version to 3.24.
meson.build | 2 +-
src/window.vala | 27 +++++++++++++++++++--------
2 files changed, 20 insertions(+), 9 deletions(-)
---
diff --git a/meson.build b/meson.build
index b802302..7d54a6b 100644
--- a/meson.build
+++ b/meson.build
@@ -21,7 +21,7 @@ glib_min_version = '2.36'
glib_dep = dependency('glib-2.0', version: '>= ' + glib_min_version)
gmodule_dep = dependency('gmodule-2.0')
gobject_dep = dependency('gobject-2.0')
-gtk_dep = dependency('gtk+-3.0', version: '>= 3.12')
+gtk_dep = dependency('gtk+-3.0', version: '>= 3.24')
clutter_dep = dependency('clutter-1.0', version: '>= 1.14.0')
clutter_gtk_dep = dependency('clutter-gtk-1.0', version: '>= 1.5.0')
diff --git a/src/window.vala b/src/window.vala
index 9a5946a..2f39e91 100644
--- a/src/window.vala
+++ b/src/window.vala
@@ -70,7 +70,7 @@ private class SwellFoopWindow : ApplicationWindow
else
{
main_box.pack_start (clutter_embed, true, true);
- key_press_event.connect (key_press_event_cb);
+ init_keyboard ();
}
}
@@ -128,7 +128,7 @@ private class SwellFoopWindow : ApplicationWindow
stack.set_transition_duration (500);
/* */
stack.set_visible_child_name ("game");
- key_press_event.connect (key_press_event_cb);
+ init_keyboard ();
settings.set_boolean ("first-run", false);
});
return stack;
@@ -257,29 +257,40 @@ private class SwellFoopWindow : ApplicationWindow
* * keyboard
\*/
- private bool key_press_event_cb (Widget widget, Gdk.EventKey event)
+ private EventControllerKey key_controller; // for keeping in memory
+
+ private inline void init_keyboard ()
+ {
+ key_controller = new EventControllerKey (this);
+ key_controller.key_pressed.connect (on_key_pressed);
+ }
+
+ private inline bool on_key_pressed (EventControllerKey _key_controller, uint keyval, uint keycode,
Gdk.ModifierType state)
{
- switch (event.keyval)
+ switch (keyval)
{
case Gdk.Key.F2:
new_game ();
break;
+
case Gdk.Key.Up:
- view.cursor_move (0, 1);
+ view.cursor_move ( 0, 1);
break;
case Gdk.Key.Down:
- view.cursor_move (0, -1);
+ view.cursor_move ( 0, -1);
break;
case Gdk.Key.Left:
- view.cursor_move (-1, 0);
+ view.cursor_move (-1, 0);
break;
case Gdk.Key.Right:
- view.cursor_move (1, 0);
+ view.cursor_move ( 1, 0);
break;
+
case Gdk.Key.space:
case Gdk.Key.Return:
view.cursor_click ();
return true; //handle this one to avoid activating the toolbar button
+
default:
break;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]