diff options
-rw-r--r-- | src/remmina_ssh_plugin.c | 26 | ||||
-rw-r--r-- | src/remmina_ssh_plugin.h | 9 |
2 files changed, 34 insertions, 1 deletions
diff --git a/src/remmina_ssh_plugin.c b/src/remmina_ssh_plugin.c index 5ef5c0037..05de5ef09 100644 --- a/src/remmina_ssh_plugin.c +++ b/src/remmina_ssh_plugin.c @@ -944,7 +944,7 @@ static gpointer ssh_terminal_palette[] = "4", "Solarized Light", "5", "XTerm", "6", "Custom (Configured in Remmina preferences)", - NULL + NULL, NULL }; /** @@ -1048,6 +1048,30 @@ remmina_ssh_plugin_register(void) remmina_plugin_ssh_features[3].opt3 = GUINT_TO_POINTER(remmina_pref.vte_shortcutkey_select_all); remmina_plugin_service = &remmina_plugin_manager_service; + + RemminaProtocolSettingOpt *settings = malloc(sizeof(remmina_ssh_advanced_settings)); + + // preset new settings with (old) static remmina_ssh_advanced_settings data + unsigned int rec_size = sizeof(remmina_ssh_advanced_settings) / sizeof(RemminaProtocolSetting); + for (int ii=0; ii < rec_size; ii++) { + settings[ii].type = remmina_ssh_advanced_settings[ii].type; + settings[ii].name = remmina_ssh_advanced_settings[ii].name; + settings[ii].label = remmina_ssh_advanced_settings[ii].label; + settings[ii].compact = remmina_ssh_advanced_settings[ii].compact; + settings[ii].opt1 = remmina_ssh_advanced_settings[ii].opt1; + settings[ii].opt2 = remmina_ssh_advanced_settings[ii].opt1; + } + + // create dynamic advanced settings to made replacing of ssh_terminal_palette possible + rec_size = sizeof(ssh_terminal_palette) / sizeof(gpointer); + gpointer *ssh_terminal_palette_new = malloc(rec_size * sizeof(gpointer)); + // preset with (old) static ssh_terminal_palette data + for (int ii=0; ii < rec_size; ii++) { + ssh_terminal_palette_new[ii] = ssh_terminal_palette[ii]; + } + settings[0].opt1 = ssh_terminal_palette_new; + remmina_plugin_ssh.advanced_settings = (RemminaProtocolSetting*)settings; + remmina_plugin_service->register_plugin((RemminaPlugin*)&remmina_plugin_ssh); ssh_threads_set_callbacks(ssh_threads_get_pthread()); diff --git a/src/remmina_ssh_plugin.h b/src/remmina_ssh_plugin.h index fe6351e38..bccf2e08e 100644 --- a/src/remmina_ssh_plugin.h +++ b/src/remmina_ssh_plugin.h @@ -44,6 +44,15 @@ G_BEGIN_DECLS void remmina_ssh_plugin_register(void); +typedef struct _RemminaProtocolSettingOpt { + RemminaProtocolSettingType type; + const gchar *name; + const gchar *label; + gboolean compact; + gpointer opt1; + gpointer opt2; +} RemminaProtocolSettingOpt; + /* For callback in main thread */ #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE) void remmina_plugin_ssh_vte_terminal_set_encoding_and_pty(VteTerminal *terminal, const char *codeset, int master, int slave); |