From 56a244f2aa3c474b2506847ba9a2f5a21cb8efc2 Mon Sep 17 00:00:00 2001 From: Julien Lavergne Date: Tue, 26 Jul 2011 01:21:04 +0200 Subject: [PATCH] Fix GtkAllocation to fix empty lxlauncher --- src/exo-wrap-table.c | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/exo-wrap-table.c b/src/exo-wrap-table.c index c691434..f48322f 100644 --- a/src/exo-wrap-table.c +++ b/src/exo-wrap-table.c @@ -326,14 +326,14 @@ exo_wrap_table_size_request (GtkWidget *widget, if (G_LIKELY (num_children > 0)) { #if GTK_CHECK_VERSION(2,18,0) - GtkAllocation allocation; - gtk_widget_set_allocation(widget, &allocation); - num_cols = exo_wrap_table_get_num_fitting (allocation.width + GtkAllocation *allocation = g_new0 (GtkAllocation, 1); + gtk_widget_get_allocation(GTK_WIDGET(widget), allocation); + num_cols = exo_wrap_table_get_num_fitting (allocation->width - gtk_container_get_border_width(GTK_CONTAINER (widget)) * 2, table->priv->col_spacing, max_width); #else num_cols = exo_wrap_table_get_num_fitting (widget->allocation.width - - gtk_container_get_border_width(GTK_CONTAINER (widget)) * 2, + - GTK_CONTAINER (widget)->border_width * 2, table->priv->col_spacing, max_width); #endif num_rows = num_children / num_cols; @@ -345,7 +345,12 @@ exo_wrap_table_size_request (GtkWidget *widget, requisition->width = -1; requisition->height = (num_rows * max_height) + (num_rows - 1) * table->priv->col_spacing +#if GTK_CHECK_VERSION(2,18,0) + gtk_container_get_border_width(GTK_CONTAINER (widget)) * 2; + g_free (allocation); +#else + + GTK_CONTAINER (widget)->border_width * 2; +#endif } else { @@ -479,8 +484,8 @@ exo_wrap_table_layout (ExoWrapTable *table) gint max_height; gint max_width; #if GTK_CHECK_VERSION(2,18,0) - GtkAllocation allocation; - gtk_widget_set_allocation(GTK_WIDGET(table), &allocation); + GtkAllocation *allocation = g_new0 (GtkAllocation, 1); + gtk_widget_get_allocation(GTK_WIDGET(table), allocation); #endif /* determine the number of visible children and the max size */ @@ -490,7 +495,7 @@ exo_wrap_table_layout (ExoWrapTable *table) /* determine the number of columns */ #if GTK_CHECK_VERSION(2,18,0) - num_cols = exo_wrap_table_get_num_fitting (allocation.width + num_cols = exo_wrap_table_get_num_fitting (allocation->width - gtk_container_get_border_width(GTK_CONTAINER (table)) * 2, table->priv->col_spacing, max_width); #else @@ -509,8 +514,8 @@ exo_wrap_table_layout (ExoWrapTable *table) /* determine the horizontal bounds */ #if GTK_CHECK_VERSION(2,18,0) - x0 = allocation.x + gtk_container_get_border_width(GTK_CONTAINER (table)); - x1 = x0 + allocation.width - gtk_container_get_border_width(GTK_CONTAINER (table)); + x0 = allocation->x + gtk_container_get_border_width(GTK_CONTAINER (table)); + x1 = x0 + allocation->width - gtk_container_get_border_width(GTK_CONTAINER (table)); #else x0 = GTK_WIDGET (table)->allocation.x + GTK_CONTAINER (table)->border_width; x1 = x0 + GTK_WIDGET (table)->allocation.width - GTK_CONTAINER (table)->border_width; @@ -519,7 +524,8 @@ exo_wrap_table_layout (ExoWrapTable *table) /* initialize the position */ x = x0; #if GTK_CHECK_VERSION(2,18,0) - y = allocation.y + gtk_container_get_border_width(GTK_CONTAINER (table)); + y = allocation->y + gtk_container_get_border_width(GTK_CONTAINER (table)); + g_free (allocation); #else y = GTK_WIDGET (table)->allocation.y + GTK_CONTAINER (table)->border_width; #endif -- 1.7.4.1