summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-04-18 20:11:43 -0400
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-04-18 20:11:43 -0400
commitfe257d23dd6ca64194c7b7d4ac9c05d8faba6aec (patch)
tree57590cf34e466b34265583983d9a1e16c1146e2a
parent3cbd9e9313061945d9868a8e3a01de51be07bfa1 (diff)
downloadgtk+-fe257d23dd6ca64194c7b7d4ac9c05d8faba6aec.tar.gz
Fixed GtkAssistant to not access ->requisition of children directly.
This was causing a 0 height action-area because a GtkBox does not generally update ->requisition with anything useful (call gtk_widget_get_child_requisition() here instead).
-rw-r--r--gtk/gtkassistant.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/gtk/gtkassistant.c b/gtk/gtkassistant.c
index 1e2c3ce432..143a8337f4 100644
--- a/gtk/gtkassistant.c
+++ b/gtk/gtkassistant.c
@@ -1145,13 +1145,14 @@ gtk_assistant_size_request (GtkWidget *widget,
requisition->height = height;
}
+
static void
gtk_assistant_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
GtkAssistant *assistant = GTK_ASSISTANT (widget);
GtkAssistantPrivate *priv = assistant->priv;
- GtkRequisition header_requisition;
+ GtkRequisition header_requisition, action_requisition, sidebar_requisition;
GtkAllocation child_allocation, header_allocation;
gint header_padding, content_padding;
gboolean rtl;
@@ -1178,24 +1179,28 @@ gtk_assistant_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (priv->header_image, &header_allocation);
/* Action area */
+ gtk_widget_get_child_requisition (priv->action_area, &action_requisition);
+
child_allocation.x = GTK_CONTAINER (widget)->border_width;
child_allocation.y = allocation->height -
- GTK_CONTAINER (widget)->border_width - priv->action_area->requisition.height;
+ GTK_CONTAINER (widget)->border_width - action_requisition.height;
child_allocation.width = allocation->width - 2 * GTK_CONTAINER (widget)->border_width;
- child_allocation.height = priv->action_area->requisition.height;
+ child_allocation.height = action_requisition.height;
gtk_widget_size_allocate (priv->action_area, &child_allocation);
/* Sidebar */
+ gtk_widget_get_child_requisition (priv->sidebar_image, &sidebar_requisition);
+
if (rtl)
child_allocation.x = allocation->width -
- GTK_CONTAINER (widget)->border_width - priv->sidebar_image->requisition.width;
+ GTK_CONTAINER (widget)->border_width - sidebar_requisition.width;
else
child_allocation.x = GTK_CONTAINER (widget)->border_width;
child_allocation.y = GTK_CONTAINER (widget)->border_width +
priv->header_image->allocation.height + 2 * header_padding;
- child_allocation.width = priv->sidebar_image->requisition.width;
+ child_allocation.width = sidebar_requisition.width;
child_allocation.height = allocation->height - 2 * GTK_CONTAINER (widget)->border_width -
priv->header_image->allocation.height - 2 * header_padding - priv->action_area->allocation.height;