changeset 272:49ac97060328

Fixes for default window size when the window does not have the sizeable attribute set.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 05 Mar 2003 20:55:33 +0000
parents 38d8908c4438
children 95bfcd2deb94
files gtk/dw.c
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/gtk/dw.c	Wed Mar 05 19:40:45 2003 +0000
+++ b/gtk/dw.c	Wed Mar 05 20:55:33 2003 +0000
@@ -1192,6 +1192,16 @@
 	gtk_widget_show(handle);
 	if(GTK_WIDGET(handle)->window)
 	{
+		int width = (int)gtk_object_get_data(GTK_OBJECT(handle), "_dw_width");
+		int height = (int)gtk_object_get_data(GTK_OBJECT(handle), "_dw_height");
+
+		if(width && height)
+		{
+			gdk_window_resize(GTK_WIDGET(handle)->window, width, height);
+			gtk_object_set_data(GTK_OBJECT(handle), "_dw_width", 0);
+			gtk_object_set_data(GTK_OBJECT(handle), "_dw_height", 0);
+		}
+
 		gdk_window_raise(GTK_WIDGET(handle)->window);
 		gdk_flush();
 		gdk_window_show(GTK_WIDGET(handle)->window);
@@ -1605,6 +1615,9 @@
 	if(hwndOwner)
 		gdk_window_reparent(GTK_WIDGET(tmp)->window, GTK_WIDGET(hwndOwner)->window, 0, 0);
 
+	if(flStyle & DW_FCF_SIZEBORDER)
+		gtk_object_set_data(GTK_OBJECT(tmp), "_dw_size", (gpointer)1);
+
 	DW_MUTEX_UNLOCK;
 	return tmp;
 }
@@ -5859,6 +5872,11 @@
 		if(handle->window)
 			gdk_window_resize(handle->window, width - _dw_border_width, height - _dw_border_height);
 		gtk_window_set_default_size(GTK_WINDOW(handle), width - _dw_border_width, height - _dw_border_height);
+		if(!gtk_object_get_data(GTK_OBJECT(handle), "_dw_size"))
+		{
+			gtk_object_set_data(GTK_OBJECT(handle), "_dw_width", (gpointer)width - _dw_border_width);
+			gtk_object_set_data(GTK_OBJECT(handle), "_dw_height", (gpointer)height - _dw_border_height);
+		}
 	}
 	else
 		gtk_widget_set_usize(handle, width, height);