[gtk+] menushell: Make select_first() do that, not last…



commit a5211adb225172195d6778d652b58632c38afcbf
Author: Daniel Boles <dboles src gnome org>
Date:   Sat Jan 21 15:50:54 2017 +0000

    menushell: Make select_first() do that, not last…
    
    It was looping over all items, not breaking out when it found the first
    selectable one, and then selecting the _last_ selectable one (if any)
    found. So, it did exactly the opposite of its name. This made me quite
    baffled when opening a submenu with right-arrow put me at its last item.
    
    Originally, the loop set to_select and broke if the current item was
    selectable and not tear-off, meaning that it would correctly select the
    first suitable item. However, when tear-off functionality was removed
    in commit 4ed9452e9028bb90589474783cebac57ab66e2c9, so was the break.

 gtk/gtkmenushell.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index b8b3e6b..d2e8685 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -1416,7 +1416,6 @@ gtk_menu_shell_select_first (GtkMenuShell *menu_shell,
                              gboolean      search_sensitive)
 {
   GtkMenuShellPrivate *priv = menu_shell->priv;
-  GtkWidget *to_select = NULL;
   GList *tmp_list;
 
   tmp_list = priv->children;
@@ -1427,14 +1426,12 @@ gtk_menu_shell_select_first (GtkMenuShell *menu_shell,
       if ((!search_sensitive && gtk_widget_get_visible (child)) ||
           _gtk_menu_item_is_selectable (child))
         {
-          to_select = child;
+          gtk_menu_shell_select_item (menu_shell, child);
+          return;
         }
 
       tmp_list = tmp_list->next;
     }
-
-  if (to_select)
-    gtk_menu_shell_select_item (menu_shell, to_select);
 }
 
 void


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