From 1dd716e66fa3a889a893fc28227a297abd71ab4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 2 Jul 2017 20:45:23 +0200 Subject: [PATCH] button: Reset in_button state in unmap Since at that point the point is clearly not in the button anymore. --- gtk/gtkbutton.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 01593226be..d663d1294a 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -182,6 +182,13 @@ gtk_button_remove (GtkContainer *container, GtkWidget *child) GTK_CONTAINER_CLASS (gtk_button_parent_class)->remove (container, child); } +static void +gtk_button_unmap (GtkWidget *widget) +{ + GTK_BUTTON (widget)->priv->in_button = FALSE; + GTK_WIDGET_CLASS (gtk_button_parent_class)->unmap (widget); +} + static void gtk_button_class_init (GtkButtonClass *klass) { @@ -208,6 +215,7 @@ gtk_button_class_init (GtkButtonClass *klass) widget_class->leave_notify_event = gtk_button_leave_notify; widget_class->state_flags_changed = gtk_button_state_flags_changed; widget_class->grab_notify = gtk_button_grab_notify; + widget_class->unmap = gtk_button_unmap; container_class->add = gtk_button_add; container_class->remove = gtk_button_remove;