Reset the pressed state of a button when the screen changes

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=599397
This commit is contained in:
Christian Dywan 2009-12-11 17:17:38 +01:00
parent a515a01faa
commit b20f2d26b4

View File

@ -2137,12 +2137,23 @@ static void
gtk_button_screen_changed (GtkWidget *widget,
GdkScreen *previous_screen)
{
GtkButton *button;
GtkSettings *settings;
guint show_image_connection;
if (!gtk_widget_has_screen (widget))
return;
button = GTK_BUTTON (widget);
/* If the button is being pressed while the screen changes the
release might never occur, so we reset the state. */
if (button->button_down)
{
button->button_down = FALSE;
gtk_button_update_state (button);
}
settings = gtk_widget_get_settings (widget);
show_image_connection =
@ -2159,7 +2170,7 @@ gtk_button_screen_changed (GtkWidget *widget,
I_("gtk-button-connection"),
GUINT_TO_POINTER (show_image_connection));
show_image_change_notify (GTK_BUTTON (widget));
show_image_change_notify (button);
}
static void