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-21 14:18:49 +0300
committermyheroyuki <myheroyuki@outlook.com>2023-09-21 14:18:49 +0300
commit54713e0e80356a7df69abda64d22a0cde71a471c (patch)
tree4f0a1911cefdb36d12817129282008773bfeeac7 /src
parentdf6a9cdcf0cb3d757eee76bcd7cceabdec0e448a (diff)
[REM-2972] Make keeping window open on session disconnect configurable
Diffstat (limited to 'src')
-rw-r--r--src/remmina_file_editor.c10
-rw-r--r--src/remmina_protocol_widget.c4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/remmina_file_editor.c b/src/remmina_file_editor.c
index ccd8e984a..feee4a031 100644
--- a/src/remmina_file_editor.c
+++ b/src/remmina_file_editor.c
@@ -121,6 +121,7 @@ struct _RemminaFileEditorPriv {
GtkWidget * behavior_precommand_entry;
GtkWidget * behavior_postcommand_entry;
GtkWidget * behavior_lock_check;
+ GtkWidget * behavior_disconnect;
GtkWidget * ssh_tunnel_enabled_check;
GtkWidget * ssh_tunnel_loopback_check;
@@ -1192,6 +1193,13 @@ static void remmina_file_editor_create_behavior_tab(RemminaFileEditor *gfe)
/* Autostart profile option */
priv->behavior_lock_check = remmina_file_editor_create_check(gfe, grid, 10, 1, _("Require password to connect or edit the profile"),
remmina_file_get_int(priv->remmina_file, "profile-lock", FALSE), "profile-lock");
+
+ /* Startup frame */
+ remmina_public_create_group(GTK_GRID(grid), _("Unexpected disconnect"), 12, 1, 2);
+
+ /* Autostart profile option */
+ priv->behavior_disconnect = remmina_file_editor_create_check(gfe, grid, 16, 1, _("Keep window from closing if not disconnected by Remmina"),
+ remmina_file_get_int(priv->remmina_file, "disconnect-prompt", FALSE), "disconnect-prompt");
}
#ifdef HAVE_LIBSSH
@@ -1467,6 +1475,8 @@ static void remmina_file_editor_save_behavior_tab(RemminaFileEditor *gfe)
remmina_file_set_int(priv->remmina_file, "enable-autostart", autostart_enabled);
gboolean lock_enabled = (priv->behavior_lock_check ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->behavior_lock_check)) : FALSE);
remmina_file_set_int(priv->remmina_file, "profile-lock", lock_enabled);
+ gboolean disconect_prompt = (priv->behavior_disconnect ? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->behavior_disconnect)) : FALSE);
+ remmina_file_set_int(priv->remmina_file, "disconnect-prompt", disconect_prompt);
}
static void remmina_file_editor_save_ssh_tunnel_tab(RemminaFileEditor *gfe)
diff --git a/src/remmina_protocol_widget.c b/src/remmina_protocol_widget.c
index b6915d44b..b77d52fad 100644
--- a/src/remmina_protocol_widget.c
+++ b/src/remmina_protocol_widget.c
@@ -363,8 +363,8 @@ static gboolean conn_closed(gpointer data)
{
TRACE_CALL(__func__);
RemminaProtocolWidget *gp = (RemminaProtocolWidget *)data;
-
- if (!gp->priv->user_disconnect && !gp->priv->has_error){
+ int disconnect_prompt = remmina_file_get_int(gp->priv->remmina_file, "disconnect-prompt", FALSE);
+ if (!gp->priv->user_disconnect && !gp->priv->has_error && disconnect_prompt){
const char* msg = "Plugin Disconnected";
if (gp->priv->has_error){
msg = remmina_protocol_widget_get_error_message(gp);