From c4becf1bb100e6761d242538bd0cb5e19cbb0166 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 7 Feb 2016 05:53:21 +0100 Subject: [PATCH] Let the about dialog be modal --- tools/helper.c | 46 ++++++++++++---------------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/tools/helper.c b/tools/helper.c index 998d5be..79eaf08 100644 --- a/tools/helper.c +++ b/tools/helper.c @@ -84,9 +84,6 @@ struct _Surfer GtkWidget * fi_case; GtkWidget * fi_back; GtkWidget * fi_wrap; - - /* about */ - GtkWidget * ab_window; }; typedef enum _HelperStoreType @@ -345,7 +342,6 @@ Helper * helper_new(void) gtk_widget_grab_focus(helper->view); gtk_widget_show_all(helper->window); helper->fi_dialog = NULL; - helper->ab_window = NULL; return helper; } @@ -355,8 +351,6 @@ void helper_delete(Helper * helper) { if(helper->source != 0) g_source_remove(helper->source); - if(helper->ab_window != NULL) - gtk_widget_destroy(helper->ab_window); if(helper->fi_dialog != NULL) gtk_widget_destroy(helper->fi_dialog); gtk_widget_destroy(helper->window); @@ -629,40 +623,24 @@ static void _helper_on_fullscreen(gpointer data) #ifndef EMBEDDED /* helper_on_help_about */ -static gboolean _about_on_closex(gpointer data); - static void _helper_on_help_about(gpointer data) { Helper * helper = data; + GtkWidget * dialog; - if(helper->ab_window != NULL) - { - gtk_window_present(GTK_WINDOW(helper->ab_window)); - return; - } - helper->ab_window = desktop_about_dialog_new(); - gtk_window_set_transient_for(GTK_WINDOW(helper->ab_window), GTK_WINDOW( + dialog = desktop_about_dialog_new(); + gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW( helper->window)); - desktop_about_dialog_set_authors(helper->ab_window, _authors); - desktop_about_dialog_set_comments(helper->ab_window, + desktop_about_dialog_set_authors(dialog, _authors); + desktop_about_dialog_set_comments(dialog, _("Online help for the DeforaOS desktop")); - desktop_about_dialog_set_copyright(helper->ab_window, _copyright); - desktop_about_dialog_set_logo_icon_name(helper->ab_window, - "help-browser"); - desktop_about_dialog_set_license(helper->ab_window, _license); - desktop_about_dialog_set_name(helper->ab_window, PACKAGE); - desktop_about_dialog_set_version(helper->ab_window, VERSION); - g_signal_connect_swapped(helper->ab_window, "delete-event", G_CALLBACK( - _about_on_closex), helper); - gtk_widget_show(helper->ab_window); -} - -static gboolean _about_on_closex(gpointer data) -{ - Helper * helper = data; - - gtk_widget_hide(helper->ab_window); - return TRUE; + desktop_about_dialog_set_copyright(dialog, _copyright); + desktop_about_dialog_set_logo_icon_name(dialog, "help-browser"); + desktop_about_dialog_set_license(dialog, _license); + desktop_about_dialog_set_name(dialog, PACKAGE); + desktop_about_dialog_set_version(dialog, VERSION); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); }