diff options
author | myheroyuki <myheroyuki@outlook.com> | 2023-09-21 14:18:49 +0300 |
---|---|---|
committer | myheroyuki <myheroyuki@outlook.com> | 2023-09-21 14:18:49 +0300 |
commit | 54713e0e80356a7df69abda64d22a0cde71a471c (patch) | |
tree | 4f0a1911cefdb36d12817129282008773bfeeac7 /src | |
parent | df6a9cdcf0cb3d757eee76bcd7cceabdec0e448a (diff) |
[REM-2972] Make keeping window open on session disconnect configurable
Diffstat (limited to 'src')
-rw-r--r-- | src/remmina_file_editor.c | 10 | ||||
-rw-r--r-- | src/remmina_protocol_widget.c | 4 |
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); |