Mercurial > dwindows
comparison 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 |
comparison
equal
deleted
inserted
replaced
1120:b2e060f43329 | 1121:fb92778105b2 |
---|---|
2474 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2); | 2474 dw_box_pack_start(buttonbox, cancelbutton, 50, 30, TRUE, FALSE, 2); |
2475 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait); | 2475 dw_signal_connect(cancelbutton, DW_SIGNAL_CLICKED, DW_SIGNAL_FUNC(_dw_cancel_func), (void *)dwwait); |
2476 } | 2476 } |
2477 | 2477 |
2478 height = max(50,text_height)+100; | 2478 height = max(50,text_height)+100; |
2479 x = ( - (text_width+60+extra_width))/2; | 2479 x = (dw_screen_width() - (text_width+60+extra_width))/2; |
2480 y = (dw_screen_height() - height)/2; | 2480 y = (dw_screen_height() - height)/2; |
2481 | 2481 |
2482 dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height); | 2482 dw_window_set_pos_size(entrywindow, x, y, (text_width+60+extra_width), height); |
2483 | 2483 |
2484 dw_window_show(entrywindow); | 2484 dw_window_show(entrywindow); |
9471 int _locked_by_me = FALSE; | 9471 int _locked_by_me = FALSE; |
9472 #if GTK_MAJOR_VERSION > 1 | 9472 #if GTK_MAJOR_VERSION > 1 |
9473 GtkWidget *mdi; | 9473 GtkWidget *mdi; |
9474 #endif | 9474 #endif |
9475 | 9475 |
9476 if(!handle) | |
9477 return; | |
9478 | |
9476 DW_MUTEX_LOCK; | 9479 DW_MUTEX_LOCK; |
9477 #if GTK_MAJOR_VERSION > 1 | 9480 #if GTK_MAJOR_VERSION > 1 |
9478 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 9481 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
9479 { | 9482 { |
9480 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); | 9483 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); |
9481 } | 9484 } |
9482 else | 9485 else |
9483 #endif | 9486 #endif |
9484 { | 9487 { |
9485 if(handle && handle->window) | 9488 GdkWindow *window = NULL; |
9486 gdk_window_move(handle->window, x, y); | 9489 |
9490 if(GTK_IS_WINDOW(handle)) | |
9491 { | |
9492 #if GTK_MAJOR_VERSION > 1 | |
9493 gtk_window_move(GTK_WINDOW(handle), x, y); | |
9494 #else | |
9495 gtk_widget_set_uposition(handle, x, y); | |
9496 #endif | |
9497 } | |
9498 else if((window = gtk_widget_get_window(handle))) | |
9499 gdk_window_move(window, x, y); | |
9487 } | 9500 } |
9488 DW_MUTEX_UNLOCK; | 9501 DW_MUTEX_UNLOCK; |
9489 } | 9502 } |
9490 | 9503 |
9491 /* | 9504 /* |
9504 GtkWidget *mdi; | 9517 GtkWidget *mdi; |
9505 #endif | 9518 #endif |
9506 | 9519 |
9507 if(!handle) | 9520 if(!handle) |
9508 return; | 9521 return; |
9522 | |
9509 DW_MUTEX_LOCK; | 9523 DW_MUTEX_LOCK; |
9510 #if GTK_MAJOR_VERSION > 1 | 9524 #if GTK_MAJOR_VERSION > 1 |
9511 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) | 9525 if((mdi = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mdi")) && GTK_IS_MDI(mdi)) |
9512 { | 9526 { |
9513 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); | 9527 gtk_mdi_move(GTK_MDI(mdi), handle, x, y); |
9516 #endif | 9530 #endif |
9517 { | 9531 { |
9518 if(GTK_IS_WINDOW(handle)) | 9532 if(GTK_IS_WINDOW(handle)) |
9519 { | 9533 { |
9520 dw_window_set_size(handle, width, height); | 9534 dw_window_set_size(handle, width, height); |
9535 #if GTK_MAJOR_VERSION > 1 | |
9536 gtk_window_move(GTK_WINDOW(handle), x, y); | |
9537 #else | |
9521 gtk_widget_set_uposition(handle, x, y); | 9538 gtk_widget_set_uposition(handle, x, y); |
9539 #endif | |
9522 } | 9540 } |
9523 else if(handle->window) | 9541 else if(handle->window) |
9524 { | 9542 { |
9525 gdk_window_resize(handle->window, width, height); | 9543 gdk_window_resize(handle->window, width, height); |
9526 gdk_window_move(handle->window, x, y); | 9544 gdk_window_move(handle->window, x, y); |