toolbar: Handle the fact that size_allocate() != get_allocation()

size_allocate() allocates the available space for the margin box,
get_allocation() returns the actual space of the content box and those
can be different. And then animations never stop.
If that makes you go "huh?", you might want to read
http://www.w3.org/TR/CSS21/box.html
and the docs for gtk_widget_compute_align().
This commit is contained in:
Benjamin Otte 2011-06-15 19:59:45 +02:00
parent 4edb3f08e4
commit ba869e0fe0

View File

@ -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