[gtk+] Reset the pressed state of a button when the screen changes
- From: Christian Dywan <cdywan src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Reset the pressed state of a button when the screen changes
- Date: Fri, 11 Dec 2009 16:18:24 +0000 (UTC)
commit b20f2d26b4b4ffa68bc92d339ab86c61612009da
Author: Christian Dywan <christian twotoasts de>
Date: Fri Dec 11 17:17:38 2009 +0100
Reset the pressed state of a button when the screen changes
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=599397
gtk/gtkbutton.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index db46804..2f8b98f 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]