summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2020-11-29 09:49:08 +0100
committerMatthias Clasen <mclasen@redhat.com>2020-11-30 09:23:03 -0500
commitdc13ff97e2bcbb894ef37872c1860d14571b4647 (patch)
treeb71ba9b2c0935c79e76f7720923754e16de5156d
parentaf28237569dea636b39da295f286bb46ca246622 (diff)
downloadgtk+-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.c11
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);
}
}