[gtk+] gtk: don't always invalidate spinbuttons on each leave_notify()



commit 68d176d80bf148f7a391dbc73fb0c9ee4111fa9f
Author: Michael Natterer <mitch gimp org>
Date:   Wed Feb 16 18:39:33 2011 +0100

    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 files changed, 7 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index b1cbf79..3d08753 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 (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);
+  if (priv->in_child != NO_ARROW)
+    {
+      priv->in_child = NO_ARROW;
+      gtk_widget_queue_draw (GTK_WIDGET (spin));
+    }
 
-  return FALSE;
+  return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->leave_notify_event (widget, event);
 }
 
 static gint



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]