Shell: fix initial window size

The code is setting the min-content-height out of a ::size-allocate
handler, so the resulting size request is ignored. Doing a separate
size request in an idle has the desired effect.
This commit is contained in:
Matthias Clasen 2010-12-03 21:22:26 -05:00
parent fbbb9c35a9
commit 01f8f489d2

View file

@ -913,6 +913,16 @@ gnome_control_center_class_init (GnomeControlCenterClass *klass)
shell_class->get_toplevel = _shell_get_toplevel; shell_class->get_toplevel = _shell_get_toplevel;
} }
static gboolean
queue_resize (gpointer data)
{
GtkWidget *widget = data;
gtk_widget_queue_resize (widget);
return FALSE;
}
static void static void
on_window_size_allocate (GtkWidget *widget, on_window_size_allocate (GtkWidget *widget,
GtkAllocation *allocation, GtkAllocation *allocation,
@ -945,7 +955,16 @@ on_window_size_allocate (GtkWidget *widget,
height = 50; height = 50;
} }
if (gtk_scrolled_window_get_min_content_height (GTK_SCROLLED_WINDOW (self->priv->scrolled_window)) != height)
{
g_debug ("Setting min content height: %d", height);
gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (self->priv->scrolled_window), height); gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (self->priv->scrolled_window), height);
/*
* Queueing a resize out of size-allocate is ignored,
* so we have to defer to an idle.
*/
g_idle_add (queue_resize, self->priv->scrolled_window);
}
} }
static void static void