From d365c40958fb339a891d67058b8864cc64d73553 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 18 Oct 2010 22:18:15 +0000 Subject: [PATCH] (trunk gtk) #3644 "About Dialog appear with main window" -- handle another special case. Fix confirmed by kovalev --- gtk/main.c | 13 ++++++------- gtk/msgwin.c | 3 ++- gtk/msgwin.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gtk/main.c b/gtk/main.c index 0f7cea19f..7e36eb791 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1407,7 +1407,7 @@ onUriClicked( GtkAboutDialog * u UNUSED, const gchar * uri, gpointer u2 UNUSED ) } static void -about( GtkWindow * parent UNUSED ) +about( GtkWindow * parent ) { GtkWidget * d; const char * website_uri = "http://www.transmissionbt.com/"; @@ -1437,9 +1437,9 @@ about( GtkWindow * parent UNUSED ) "wrap-license", TRUE, #endif NULL ); - - gtk_dialog_run( GTK_DIALOG( d ) ); - gtk_widget_destroy( d ); + gtk_window_set_transient_for( GTK_WINDOW( d ), parent ); + g_signal_connect_swapped( d, "response", G_CALLBACK (gtk_widget_destroy), d ); + gtk_widget_show_all( d ); } static void @@ -1727,9 +1727,8 @@ doAction( const char * action_name, gpointer user_data ) { if( !data->msgwin ) { - GtkWidget * win = msgwin_new( data->core ); - g_signal_connect( win, "destroy", G_CALLBACK( msgwinclosed ), - NULL ); + GtkWidget * win = msgwin_new( data->core, data->wind ); + g_signal_connect( win, "destroy", G_CALLBACK( msgwinclosed ), NULL ); data->msgwin = win; } else diff --git a/gtk/msgwin.c b/gtk/msgwin.c index 38e1773e3..61f3b2995 100644 --- a/gtk/msgwin.c +++ b/gtk/msgwin.c @@ -374,7 +374,7 @@ debug_level_combo_new( void ) **/ GtkWidget * -msgwin_new( TrCore * core ) +msgwin_new( TrCore * core, GtkWindow * parent ) { GtkWidget * win; GtkWidget * vbox; @@ -388,6 +388,7 @@ msgwin_new( TrCore * core ) data->core = core; win = gtk_window_new( GTK_WINDOW_TOPLEVEL ); + gtk_window_set_transient_for( GTK_WINDOW( win ), parent ); gtk_window_set_title( GTK_WINDOW( win ), _( "Message Log" ) ); gtk_window_set_default_size( GTK_WINDOW( win ), 560, 350 ); gtk_window_set_role( GTK_WINDOW( win ), "message-log" ); diff --git a/gtk/msgwin.h b/gtk/msgwin.h index dda286c52..b9cbe58f0 100644 --- a/gtk/msgwin.h +++ b/gtk/msgwin.h @@ -13,6 +13,6 @@ #ifndef TG_MSGWIN_H #define TG_MSGWIN_H -GtkWidget * msgwin_new( TrCore * core ); +GtkWidget * msgwin_new( TrCore * core, GtkWindow * parent ); #endif