Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormyheroyuki <myheroyuki@outlook.com>2023-09-13 18:01:39 +0300
committermyheroyuki <myheroyuki@outlook.com>2023-09-13 18:01:39 +0300
commitca5a6415f4db0c99e90126577ea6fc7e5e684cb7 (patch)
tree0ec51062c073fcf50452a3476bc365d296893706 /src
parent2adb91c882e4ef110134d6dbb1a04b86468f5164 (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.c14
-rw-r--r--src/remmina_exec.h1
-rw-r--r--src/remmina_icon.c2
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);