Mercurial > dwindows
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 |