@@ -1571,6 +1571,7 @@ public class SourceList : Gtk.ScrolledWindow {
15711571
15721572 private Gtk . Entry ? editable_entry;
15731573 private Gtk . CellRendererText text_cell;
1574+ private Gtk . EventControllerKey key_controller;
15741575 private CellRendererIcon icon_cell;
15751576 private CellRendererIcon activatable_cell;
15761577 private CellRendererBadge badge_cell;
@@ -1725,6 +1726,9 @@ public class SourceList : Gtk.ScrolledWindow {
17251726
17261727 query_tooltip. connect_after (on_query_tooltip);
17271728 has_tooltip = true ;
1729+
1730+ key_controller = new Gtk .EventControllerKey (this );
1731+ key_controller. key_released. connect (on_key_released);
17281732 }
17291733
17301734 ~Tree () {
@@ -2239,19 +2243,19 @@ public class SourceList : Gtk.ScrolledWindow {
22392243 }
22402244 }
22412245
2242- public override bool key_release_event (Gdk . EventKey event) {
2243- if (selected_item != null ) {
2244- switch (event. keyval) {
2245- case Gdk . Key . F2:
2246- var modifiers = Gtk . accelerator_get_default_mod_mask ();
2247- // try to start editing selected item
2248- if ((event. state & modifiers) == 0 && selected_item. editable)
2249- start_editing_item (selected_item);
2250- break ;
2251- }
2246+ private void on_key_released (uint keyval, uint keycode, Gdk . ModifierType state) {
2247+ if (selected_item == null ) {
2248+ return ;
22522249 }
22532250
2254- return base . key_release_event (event);
2251+ switch (keyval) {
2252+ case Gdk . Key . F2:
2253+ var modifiers = Gtk . accelerator_get_default_mod_mask ();
2254+ // try to start editing selected item
2255+ if ((state & modifiers) == 0 && selected_item. editable)
2256+ start_editing_item (selected_item);
2257+ break ;
2258+ }
22552259 }
22562260
22572261 public override bool button_release_event (Gdk . EventButton event) {
0 commit comments