forked from AuroraMiddleware/gtk
button: Clear highlight when a button is removed from a container
A button is highlighted if the private variable in_button is TRUE. This variable is set when the pointer is over the button and cleared when it left the button. When a button is hidden while there is the pointer over it, GTK generates a leave notification event, in_button is set to FALSE. But when a button is removed from a container but not destroyed, it is unrealized and loose its window. It cannot receive the leave notification event and in_button stay TRUE. So when the button get a new parent it is still highlighted. https://bugzilla.gnome.org/show_bug.cgi?id=676890
This commit is contained in:
parent
f9e435df43
commit
af5ecd77e3
@ -1461,7 +1461,10 @@ gtk_button_unmap (GtkWidget *widget)
|
||||
GtkButtonPrivate *priv = button->priv;
|
||||
|
||||
if (priv->event_window)
|
||||
gdk_window_hide (priv->event_window);
|
||||
{
|
||||
gdk_window_hide (priv->event_window);
|
||||
priv->in_button = FALSE;
|
||||
}
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_button_parent_class)->unmap (widget);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user