diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-06-24 13:21:05 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-06-24 13:21:05 -0400 |
commit | d09c458cedc1dc55599de6abb8978308c1b47dcc (patch) | |
tree | ea9c6ce28c1980e4d145ebc33032297cfafd7c09 /gtk/gtkbutton.c | |
parent | 545704401ed6d17b4145d54e97b45a11b32a42aa (diff) | |
download | gtk+-d09c458cedc1dc55599de6abb8978308c1b47dcc.tar.gz |
GtkButton: Queue a redraw on enter/leave
We currently getting a redraw for buttons, but that is just luck.
Better to make it explicit.
Diffstat (limited to 'gtk/gtkbutton.c')
-rw-r--r-- | gtk/gtkbutton.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index b07d364637..ce4729b351 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -134,6 +134,7 @@ static void gtk_real_button_released (GtkButton * button); static void gtk_real_button_clicked (GtkButton * button); static void gtk_real_button_activate (GtkButton *button); static void gtk_button_update_state (GtkButton *button); +static void gtk_button_enter_leave (GtkButton *button); static void gtk_button_add (GtkContainer *container, GtkWidget *widget); static GType gtk_button_child_type (GtkContainer *container); @@ -237,8 +238,8 @@ gtk_button_class_init (GtkButtonClass *klass) klass->pressed = gtk_real_button_pressed; klass->released = gtk_real_button_released; klass->clicked = NULL; - klass->enter = gtk_button_update_state; - klass->leave = gtk_button_update_state; + klass->enter = gtk_button_enter_leave; + klass->leave = gtk_button_enter_leave; klass->activate = gtk_real_button_activate; props[PROP_LABEL] = @@ -2508,6 +2509,13 @@ _gtk_button_set_depressed (GtkButton *button, } static void +gtk_button_enter_leave (GtkButton *button) +{ + gtk_button_update_state (button); + gtk_widget_queue_draw (GTK_WIDGET (button)); +} + +static void gtk_button_update_state (GtkButton *button) { GtkButtonPrivate *priv = button->priv; |