diff options
author | Timm Bäder <mail@baedert.org> | 2020-11-29 09:49:08 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-11-30 09:23:03 -0500 |
commit | dc13ff97e2bcbb894ef37872c1860d14571b4647 (patch) | |
tree | b71ba9b2c0935c79e76f7720923754e16de5156d | |
parent | af28237569dea636b39da295f286bb46ca246622 (diff) | |
download | gtk+-dc13ff97e2bcbb894ef37872c1860d14571b4647.tar.gz |
modelbutton: Reset active menu item on pointer leave
We don't want to leave an active menu item behind if the pointer doesn't
enter another menu item.
This matches the old GtkMenu behavior
-rw-r--r-- | gtk/gtkmodelbutton.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 3d2e2519c4..32232909b3 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -1387,18 +1387,16 @@ pointer_cb (GObject *object, GParamSpec *pspec, gpointer data) { + GtkWidget *target = GTK_WIDGET (data); + GtkWidget *popover; gboolean contains; contains = gtk_event_controller_motion_contains_pointer (GTK_EVENT_CONTROLLER_MOTION (object)); + popover = gtk_widget_get_ancestor (target, GTK_TYPE_POPOVER_MENU); + if (contains) { - GtkWidget *target; - GtkWidget *popover; - - target = GTK_WIDGET (data); - popover = gtk_widget_get_ancestor (target, GTK_TYPE_POPOVER_MENU); - if (popover) { if (gtk_popover_menu_get_open_submenu (GTK_POPOVER_MENU (popover)) != NULL) @@ -1412,6 +1410,7 @@ pointer_cb (GObject *object, GtkModelButton *button = data; stop_open (button); + gtk_popover_menu_set_active_item (GTK_POPOVER_MENU (popover), NULL); } } |