[gtk+/a11y] toolbar: Handle the fact that size_allocate() != get_allocation()



commit a646db9049c14a9b0ce70da16ff15b4a663d590b
Author: Benjamin Otte <otte redhat com>
Date:   Wed Jun 15 19:59:45 2011 +0200

    toolbar: Handle the fact that size_allocate() != get_allocation()
    
    size_allocate() allocates the margin box, get_allocation() returns the
    content box and those can be different so animations never stop.
    If that makes you go "huh?", you might want to read
    http://www.w3.org/TR/CSS21/box.html

 gtk/gtktoolbar.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index f654919..da55c6a 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -3513,8 +3513,20 @@ static void
 toolbar_content_size_allocate (ToolbarContent *content,
 			       GtkAllocation  *allocation)
 {
+  GtkAllocation goal;
+
   gtk_widget_size_allocate (GTK_WIDGET (content->item),
                             allocation);
+
+  toolbar_content_get_goal_allocation (content, &goal);
+  if (goal.x == allocation->x && 
+      goal.y == allocation->y && 
+      goal.width == allocation->width && 
+      goal.height == allocation->height)
+    {
+      gtk_widget_get_allocation (GTK_WIDGET (content->item), &goal);
+      toolbar_content_set_goal_allocation (content, &goal);
+    }
 }
 
 static void



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