summaryrefslogtreecommitdiff
path: root/gtk/gtkwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r--gtk/gtkwindow.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 20e2c98001..04ce74819a 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1295,6 +1295,7 @@ gtk_window_move_resize (GtkWindow *window)
{
GtkWidget *widget;
GtkWindowGeometryInfo *info;
+ GtkRequisition requisition;
GtkContainer *container;
gint x, y;
gint width, height;
@@ -1324,33 +1325,37 @@ gtk_window_move_resize (GtkWindow *window)
else
height = widget->requisition.height;
- gtk_widget_size_request (widget, &widget->requisition);
+ size_changed = FALSE;
- /* Figure out the new desired size */
+ gtk_widget_size_request (widget, &requisition);
- size_changed = FALSE;
+ size_changed |= requisition.width != widget->requisition.width;
+ size_changed |= requisition.height != widget->requisition.height;
+ widget->requisition = requisition;
+
+ /* Figure out the new desired size */
if (info && info->width > 0)
{
- size_changed = size_changed || (width != info->last_width);
+ size_changed |= width != info->last_width;
info->last_width = width;
new_width = info->width;
}
else
{
- size_changed = size_changed || (width != widget->requisition.width);
+ size_changed |= width != widget->requisition.width;
new_width = widget->requisition.width;
}
if (info && info->height > 0)
{
- size_changed = size_changed || (height != info->last_height);
+ size_changed |= height != info->last_height;
info->last_height = height;
new_height = info->height;
}
else
{
- size_changed = size_changed || (height != widget->requisition.height);
+ size_changed |= height != widget->requisition.height;
new_height = widget->requisition.height;
}
@@ -1493,6 +1498,9 @@ gtk_window_move_resize (GtkWindow *window)
allocation.height = new_height;
gtk_widget_size_allocate (widget, &allocation);
+ gdk_window_resize (widget->window,
+ new_width,
+ new_height);
}
else
{