[gtk+] window: Split out size guessing function
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] window: Split out size guessing function
- Date: Tue, 26 Apr 2011 22:29:29 +0000 (UTC)
commit 08b2ac1d90b4f3dfa76d6a76fa04ca28c6b7ba12
Author: Benjamin Otte <otte redhat com>
Date: Tue Apr 26 18:42:54 2011 +0200
window: Split out size guessing function
This doesn't do anything special yet, but I'm about to change that.
gtk/gtkwindow.c | 70 +++++++++++++++++++++++++++---------------------------
1 files changed, 35 insertions(+), 35 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 23872f4..4042d82 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -4834,6 +4834,20 @@ gtk_window_unmap (GtkWidget *widget)
}
static void
+gtk_window_guess_default_size (GtkWindow *window,
+ gint *width,
+ gint *height)
+{
+ GtkWidget *widget = GTK_WIDGET (window);
+ GtkRequisition requisition;
+
+ gtk_widget_get_preferred_size (widget, &requisition, NULL);
+
+ *width = requisition.width;
+ *height = requisition.height;
+}
+
+static void
gtk_window_realize (GtkWidget *widget)
{
GtkAllocation allocation;
@@ -4888,19 +4902,16 @@ gtk_window_realize (GtkWidget *widget)
allocation.width == 1 &&
allocation.height == 1)
{
- GtkRequisition requisition;
allocation.x = 0;
allocation.y = 0;
- allocation.width = 200;
- allocation.height = 200;
- gtk_widget_get_preferred_size (widget, &requisition, NULL);
- if (requisition.width || requisition.height)
+ gtk_window_guess_default_size (window, &allocation.width, &allocation.height);
+ if (allocation.width || allocation.height)
{
/* non-empty window */
- allocation.width = requisition.width;
- allocation.height = requisition.height;
+ allocation.width = 200;
+ allocation.height = 200;
}
gtk_widget_size_allocate (widget, &allocation);
@@ -6237,25 +6248,17 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
gint *height)
{
GtkWindowPrivate *priv = window->priv;
- GtkRequisition requisition;
GtkWindowGeometryInfo *info;
- GtkWidget *widget;
/* Preconditions:
* - we've done a size request
*/
- widget = GTK_WIDGET (window);
-
info = gtk_window_get_geometry_info (window, FALSE);
if (priv->need_default_size)
{
- gtk_widget_get_preferred_size (widget, &requisition, NULL);
-
- /* Default to requisition */
- *width = requisition.width;
- *height = requisition.height;
+ gtk_window_guess_default_size (window, width, height);
/* If window is empty so requests 0, default to random nonzero size */
if (*width == 0 && *height == 0)
@@ -6264,7 +6267,7 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
*height = 200;
}
- /* Override requisition with default size */
+ /* Override with default size */
if (info)
{
@@ -6283,7 +6286,7 @@ gtk_window_compute_configure_request_size (GtkWindow *window,
{
GtkAllocation allocation;
- gtk_widget_get_allocation (widget, &allocation);
+ gtk_widget_get_allocation (GTK_WIDGET (window), &allocation);
/* Default to keeping current size */
*width = allocation.width;
@@ -7120,16 +7123,13 @@ gtk_window_compute_hints (GtkWindow *window,
guint *new_flags)
{
GtkWindowPrivate *priv = window->priv;
- GtkWidget *widget;
gint extra_width = 0;
gint extra_height = 0;
GtkWindowGeometryInfo *geometry_info;
- GtkRequisition requisition;
+ int width, height;
- widget = GTK_WIDGET (window);
-
- gtk_widget_get_preferred_size (widget, &requisition, NULL);
- geometry_info = gtk_window_get_geometry_info (GTK_WINDOW (widget), FALSE);
+ gtk_window_guess_default_size (window, &width, &height);
+ geometry_info = gtk_window_get_geometry_info (window, FALSE);
if (geometry_info)
{
@@ -7171,7 +7171,7 @@ gtk_window_compute_hints (GtkWindow *window,
_gtk_widget_override_size_request (geometry_info->widget,
TEMPORARY_SIZE, TEMPORARY_SIZE,
¤t_width, ¤t_height);
- gtk_widget_get_preferred_size (widget,
+ gtk_widget_get_preferred_size (GTK_WIDGET (window),
&requisition, NULL);
_gtk_widget_restore_size_request (geometry_info->widget,
current_width, current_height);
@@ -7226,32 +7226,32 @@ gtk_window_compute_hints (GtkWindow *window,
if (*new_flags & GDK_HINT_MIN_SIZE)
{
if (new_geometry->min_width < 0)
- new_geometry->min_width = requisition.width;
+ new_geometry->min_width = width;
else
- new_geometry->min_width = MAX (requisition.width, new_geometry->min_width + extra_width);
+ new_geometry->min_width = MAX (width, new_geometry->min_width + extra_width);
if (new_geometry->min_height < 0)
- new_geometry->min_height = requisition.height;
+ new_geometry->min_height = height;
else
- new_geometry->min_height = MAX (requisition.height, new_geometry->min_height + extra_height);
+ new_geometry->min_height = MAX (height, new_geometry->min_height + extra_height);
}
else
{
*new_flags |= GDK_HINT_MIN_SIZE;
- new_geometry->min_width = requisition.width;
- new_geometry->min_height = requisition.height;
+ new_geometry->min_width = width;
+ new_geometry->min_height = height;
}
if (*new_flags & GDK_HINT_MAX_SIZE)
{
if (new_geometry->max_width < 0)
- new_geometry->max_width = requisition.width;
+ new_geometry->max_width = width;
else
new_geometry->max_width += extra_width;
if (new_geometry->max_height < 0)
- new_geometry->max_height = requisition.height;
+ new_geometry->max_height = height;
else
new_geometry->max_height += extra_height;
}
@@ -7259,8 +7259,8 @@ gtk_window_compute_hints (GtkWindow *window,
{
*new_flags |= GDK_HINT_MAX_SIZE;
- new_geometry->max_width = requisition.width;
- new_geometry->max_height = requisition.height;
+ new_geometry->max_width = width;
+ new_geometry->max_height = height;
}
*new_flags |= GDK_HINT_WIN_GRAVITY;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]