Mercurial > dwindows
diff gtk/dw.c @ 1121:fb92778105b2
Fixes some major window positioning problems in GTK3...
and some minor ones in GTK2.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 26 Aug 2011 18:36:53 +0000 |
parents | 63dd52ba9a8f |
children | e52c710e6d08 |
line wrap: on
line diff
--- a/gtk/dw.c Fri Aug 26 02:44:15 2011 +0000 +++ b/gtk/dw.c Fri Aug 26 18:36:53 2011 +0000 @@ -2476,7 +2476,7 @@ } height = max(50,text_height)+100; - x = ( - (text_width+60+extra_width))/2; + x = (dw_screen_width() - (text_width+60+extra_width))/2; y = (dw_screen_height() - height)/2; dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height); @@ -9473,6 +9473,9 @@ GtkWidget *mdi; #endif + if(!handle) + return; + DW_MUTEX_LOCK; #if GTK_MAJOR_VERSION > 1 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) @@ -9482,8 +9485,18 @@ else #endif { - if(handle && handle->window) - gdk_window_move(handle->window, x, y); + GdkWindow *window = NULL; + + if(GTK_IS_WINDOW(handle)) + { +#if GTK_MAJOR_VERSION > 1 + gtk_window_move(GTK_WINDOW(handle), x, y); +#else + gtk_widget_set_uposition(handle, x, y); +#endif + } + else if((window = gtk_widget_get_window(handle))) + gdk_window_move(window, x, y); } DW_MUTEX_UNLOCK; } @@ -9506,6 +9519,7 @@ if(!handle) return; + DW_MUTEX_LOCK; #if GTK_MAJOR_VERSION > 1 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) @@ -9518,7 +9532,11 @@ if(GTK_IS_WINDOW(handle)) { dw_window_set_size(handle, width, height); +#if GTK_MAJOR_VERSION > 1 + gtk_window_move(GTK_WINDOW(handle), x, y); +#else gtk_widget_set_uposition(handle, x, y); +#endif } else if(handle->window) {