[gtk/cut-shortcut-activation-short] shortcutcontroller: Only do round-robin for mnemonics




commit f8a1726ffabdcbcee4212b6823e4dd844e4247f7
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Aug 3 16:23:16 2021 -0400

    shortcutcontroller: Only do round-robin for mnemonics
    
    Don't do round-robin activation unless we are looking
    for mnemonics, where this is an expected feature.
    
    Fixes: #4130

 gtk/gtkshortcutcontroller.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkshortcutcontroller.c b/gtk/gtkshortcutcontroller.c
index e830503b15..5eb0187022 100644
--- a/gtk/gtkshortcutcontroller.c
+++ b/gtk/gtkshortcutcontroller.c
@@ -310,7 +310,14 @@ gtk_shortcut_controller_run_controllers (GtkEventController *controller,
       GtkWidget *widget;
       GtkNative *native;
 
-      index = (self->last_activated + 1 + i) % g_list_model_get_n_items (self->shortcuts);
+      /* This is not entirely right, but we only want to do round-robin cycling
+       * for mnemonics.
+       */
+      if (enable_mnemonics)
+        index = (self->last_activated + 1 + i) % g_list_model_get_n_items (self->shortcuts);
+      else
+        index = i;
+
       shortcut = g_list_model_get_item (self->shortcuts, index);
       if (!GTK_IS_SHORTCUT (shortcut))
         {


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