From a5211adb225172195d6778d652b58632c38afcbf Mon Sep 17 00:00:00 2001 From: Daniel Boles Date: Sat, 21 Jan 2017 15:50:54 +0000 Subject: =?UTF-8?q?menushell:=20Make=20select=5Ffirst()=20do=20that,=20not?= =?UTF-8?q?=20last=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gtk/gtkmenushell.c') diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index b8b3e6bd2d..d2e8685631 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 -- cgit v1.2.1