comparison gtk3/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
comparison
equal deleted inserted replaced
1120:b2e060f43329 1121:fb92778105b2
2301 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2); 2301 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2);
2302 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait); 2302 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait);
2303 } 2303 }
2304 2304
2305 height = max(50,text_height)+100; 2305 height = max(50,text_height)+100;
2306 x = ( - (text_width+60+extra_width))/2; 2306 x = (dw_screen_width() - (text_width+60+extra_width))/2;
2307 y = (dw_screen_height() - height)/2; 2307 y = (dw_screen_height() - height)/2;
2308 2308
2309 dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height); 2309 dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height);
2310 2310
2311 dw_window_show(entrywindow); 2311 dw_window_show(entrywindow);
8382 void dw_window_set_pos(HWND handle, long x, long y) 8382 void dw_window_set_pos(HWND handle, long x, long y)
8383 { 8383 {
8384 int _locked_by_me = FALSE; 8384 int _locked_by_me = FALSE;
8385 GtkWidget *mdi; 8385 GtkWidget *mdi;
8386 8386
8387 if(!handle)
8388 return;
8389
8387 DW_MUTEX_LOCK; 8390 DW_MUTEX_LOCK;
8388 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) 8391 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi))
8389 { 8392 {
8390 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); 8393 gtk_mdi_move(GTK_MDI(mdi), handle, x, y);
8391 } 8394 }
8392 else 8395 else
8393 { 8396 {
8394 if(handle && gtk_widget_get_window(handle)) 8397 GdkWindow *window = NULL;
8395 gdk_window_move(gtk_widget_get_window(handle), x, y); 8398
8399 if(GTK_IS_WINDOW(handle))
8400 gtk_window_move(GTK_WINDOW(handle), x, y);
8401 else if((window = gtk_widget_get_window(handle)))
8402 gdk_window_move(window, x, y);
8396 } 8403 }
8397 DW_MUTEX_UNLOCK; 8404 DW_MUTEX_UNLOCK;
8398 } 8405 }
8399 8406
8400 /* 8407 /*
8411 int _locked_by_me = FALSE; 8418 int _locked_by_me = FALSE;
8412 GtkWidget *mdi; 8419 GtkWidget *mdi;
8413 8420
8414 if(!handle) 8421 if(!handle)
8415 return; 8422 return;
8423
8416 DW_MUTEX_LOCK; 8424 DW_MUTEX_LOCK;
8417 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) 8425 if((mdi = (GtkWidget *)g_object_get_data(G_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi))
8418 { 8426 {
8419 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); 8427 gtk_mdi_move(GTK_MDI(mdi), handle, x, y);
8420 } 8428 }
8421 else 8429 else
8422 { 8430 {
8431 GdkWindow *window = NULL;
8432
8423 if(GTK_IS_WINDOW(handle)) 8433 if(GTK_IS_WINDOW(handle))
8424 { 8434 {
8425 dw_window_set_size(handle, width, height); 8435 dw_window_set_size(handle, width, height);
8426 #if 0 /* TODO: Deprecated with no replaced... what to do here? */ 8436 gtk_window_move(GTK_WINDOW(handle), x, y);
8427 gtk_widget_set_uposition(handle, x, y); 8437 }
8428 #endif 8438 else if((window = gtk_widget_get_window(handle)))
8429 } 8439 {
8430 else if(gtk_widget_get_window(handle)) 8440 gdk_window_resize(window, width, height);
8431 { 8441 gdk_window_move(window, x, y);
8432 gdk_window_resize(gtk_widget_get_window(handle), width, height);
8433 gdk_window_move(gtk_widget_get_window(handle), x, y);
8434 } 8442 }
8435 } 8443 }
8436 DW_MUTEX_UNLOCK; 8444 DW_MUTEX_UNLOCK;
8437 } 8445 }
8438 8446