[five-or-more/arnaudb/use-event-controllers: 7/8] Use EventControllerKey.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [five-or-more/arnaudb/use-event-controllers: 7/8] Use EventControllerKey.
- Date: Fri, 27 Mar 2020 17:19:30 +0000 (UTC)
commit 01356aaf0d8dc944c14e8208d619a2a5c337b533
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Thu Mar 12 20:20:53 2020 +0100
Use EventControllerKey.
Bump Gtk required version to 3.24.
meson.build | 2 +-
src/view.vala | 15 ++++++++++++---
2 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/meson.build b/meson.build
index b151822..d0759d5 100644
--- a/meson.build
+++ b/meson.build
@@ -19,7 +19,7 @@ gee_dep = dependency('gee-0.8')
gio_dep = dependency('gio-2.0', version: '>= ' + glib_min_version)
glib_dep = dependency('glib-2.0', version: '>= ' + glib_min_version)
gmodule_export_dep = dependency('gmodule-export-2.0')
-gtk_dep = dependency('gtk+-3.0', version: '>= 3.20.0')
+gtk_dep = dependency('gtk+-3.0', version: '>= 3.24.0')
libgnome_games_support_dep = dependency('libgnome-games-support-1')
librsvg_dep = dependency('librsvg-2.0', version: '>= 2.32.0')
diff --git a/src/view.vala b/src/view.vala
index 00c8ac8..17b2694 100644
--- a/src/view.vala
+++ b/src/view.vala
@@ -51,6 +51,7 @@ private class View : DrawingArea
private int animation_state;
private uint animation_id;
+ private EventControllerKey key_controller; // for keeping in memory
private GestureMultiPress click_controller; // for keeping in memory
internal View (GLib.Settings settings, Game game, ThemeRenderer theme)
@@ -59,6 +60,7 @@ private class View : DrawingArea
this.game = game;
this.theme = theme;
+ init_keyboard ();
init_mouse ();
cs = get_style_context ();
@@ -161,10 +163,15 @@ private class View : DrawingArea
queue_draw_area (keyboard_cursor_x * piece_size, keyboard_cursor_y * piece_size, piece_size,
piece_size);
}
- protected override bool key_press_event (Gdk.EventKey event)
+ private void init_keyboard ()
{
- uint key = event.keyval;
- switch (key)
+ key_controller = new Gtk.EventControllerKey (this);
+ key_controller.key_pressed.connect (on_key_pressed);
+ }
+
+ private inline bool on_key_pressed (Gtk.EventControllerKey _key_controller, uint keyval, uint keycode,
Gdk.ModifierType state)
+ {
+ switch (keyval)
{
case (Gdk.Key.Left):
/* fall-thru */
@@ -216,6 +223,8 @@ private class View : DrawingArea
if (show_cursor)
cell_clicked (keyboard_cursor_x, keyboard_cursor_y);
break;
+ default:
+ return false;
}
return true;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]