From 68d176d80bf148f7a391dbc73fb0c9ee4111fa9f Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Wed, 16 Feb 2011 18:39:33 +0100 Subject: [PATCH] gtk: don't always invalidate spinbuttons on each leave_notify() but only when an arrow was prelighted. Also, chain up unconditonally in enter_notify() and leave_notify() because GtkEntry implements them too. --- gtk/gtkspinbutton.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c index b1cbf798c4..3d0875390a 100644 --- a/gtk/gtkspinbutton.c +++ b/gtk/gtkspinbutton.c @@ -1115,10 +1115,7 @@ gtk_spin_button_enter_notify (GtkWidget *widget, gtk_widget_queue_draw (GTK_WIDGET (spin)); } - if (GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->enter_notify_event) - return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->enter_notify_event (widget, event); - - return FALSE; + return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->enter_notify_event (widget, event); } static gint @@ -1128,13 +1125,13 @@ gtk_spin_button_leave_notify (GtkWidget *widget, GtkSpinButton *spin = GTK_SPIN_BUTTON (widget); GtkSpinButtonPrivate *priv = spin->priv; - priv->in_child = NO_ARROW; - gtk_widget_queue_draw (GTK_WIDGET (spin)); + if (priv->in_child != NO_ARROW) + { + priv->in_child = NO_ARROW; + gtk_widget_queue_draw (GTK_WIDGET (spin)); + } - if (GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event) - return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event (widget, event); - - return FALSE; + return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event (widget, event); } static gint