diff options
author | myheroyuki <myheroyuki@outlook.com> | 2023-09-13 18:01:39 +0300 |
---|---|---|
committer | myheroyuki <myheroyuki@outlook.com> | 2023-09-13 18:01:39 +0300 |
commit | ca5a6415f4db0c99e90126577ea6fc7e5e684cb7 (patch) | |
tree | 0ec51062c073fcf50452a3476bc365d296893706 /src | |
parent | 2adb91c882e4ef110134d6dbb1a04b86468f5164 (diff) |
[REM-2971] When quiting Remmina from the system tray the are you sure prompt now functions properly
Diffstat (limited to 'src')
-rw-r--r-- | src/remmina_exec.c | 14 | ||||
-rw-r--r-- | src/remmina_exec.h | 1 | ||||
-rw-r--r-- | src/remmina_icon.c | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/remmina_exec.c b/src/remmina_exec.c index 5a05fe076..cf76b5831 100644 --- a/src/remmina_exec.c +++ b/src/remmina_exec.c @@ -120,6 +120,20 @@ static gboolean disable_rcw_delete_confirm_cb(GtkWidget *widget, gpointer data) return TRUE; } +void remmina_exec_exitremmina_one_confirm() +{ + TRACE_CALL(__func__); + GtkWidget* dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + _("Are you sure you want to fully quit Remmina?\n This will close any active connections.")); + int response = gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + if (response != GTK_RESPONSE_YES) + return; + remmina_widget_pool_foreach(disable_rcw_delete_confirm_cb, NULL); + remmina_exec_exitremmina(); +} + void remmina_application_condexit(RemminaCondExitType why) { TRACE_CALL(__func__); diff --git a/src/remmina_exec.h b/src/remmina_exec.h index 3748f924f..3cadec06c 100644 --- a/src/remmina_exec.h +++ b/src/remmina_exec.h @@ -63,6 +63,7 @@ typedef enum { void remmina_exec_command(RemminaCommandType command, const gchar *data); void remmina_exec_exitremmina(void); +void remmina_exec_exitremmina_one_confirm(void); void remmina_application_condexit(RemminaCondExitType why); int remmina_exec_set_setting(gchar *profilefilename, gchar **settings); diff --git a/src/remmina_icon.c b/src/remmina_icon.c index 66ad450b9..15d98ac21 100644 --- a/src/remmina_icon.c +++ b/src/remmina_icon.c @@ -157,7 +157,7 @@ static void remmina_icon_populate_additional_menu_item(GtkWidget *menu) menuitem = gtk_menu_item_new_with_mnemonic(_("_Quit")); gtk_widget_show(menuitem); gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(remmina_exec_exitremmina), NULL); + g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(remmina_exec_exitremmina_one_confirm), NULL); menuitem = gtk_menu_item_new_with_mnemonic(_("_About")); gtk_widget_show(menuitem); |