diff options
author | Hiroyuki Tanaka <myheroyuki@outlook.com> | 2023-06-29 17:31:26 +0300 |
---|---|---|
committer | Hiroyuki Tanaka <myheroyuki@outlook.com> | 2023-06-29 17:31:26 +0300 |
commit | f70fa2656a725b9c9dd3e8ebc8a5ca85ad38950e (patch) | |
tree | 380953c16d9f68dcbbc6d283cbb575e5de24300c | |
parent | 4027d57cdad7337d51a8ac1f6abf86e55efc0281 (diff) | |
parent | 9de041014608c75a2494c467e422e9e0d536f7b7 (diff) |
Merge branch 'REM-2926' into 'master'
[REM-2926] Added ability to set a fixed aspect ratio for vnc connections when...
See merge request Remmina/Remmina!2511
-rw-r--r-- | plugins/vnc/vnc_plugin.c | 23 | ||||
-rw-r--r-- | src/include/remmina/plugin.h | 1 | ||||
-rw-r--r-- | src/remmina_file.h | 1 | ||||
-rw-r--r-- | src/remmina_file_editor.c | 2 | ||||
-rw-r--r-- | src/remmina_plugin_manager.c | 1 |
5 files changed, 26 insertions, 2 deletions
diff --git a/plugins/vnc/vnc_plugin.c b/plugins/vnc/vnc_plugin.c index adecffff4..7749c80c2 100644 --- a/plugins/vnc/vnc_plugin.c +++ b/plugins/vnc/vnc_plugin.c @@ -1962,6 +1962,7 @@ static void remmina_plugin_vnc_init(RemminaProtocolWidget *gp) TRACE_CALL(__func__); RemminaPluginVncData *gpdata; gint flags; + gdouble aspect_ratio; gpdata = g_new0(RemminaPluginVncData, 1); g_object_set_data_full(G_OBJECT(gp), "plugin-data", gpdata, g_free); @@ -1974,7 +1975,19 @@ static void remmina_plugin_vnc_init(RemminaProtocolWidget *gp) gpdata->drawing_area = gtk_drawing_area_new(); gtk_widget_show(gpdata->drawing_area); - gtk_container_add(GTK_CONTAINER(gp), gpdata->drawing_area); + + aspect_ratio = remmina_plugin_service->file_get_double(remminafile, "aspect_ratio", 0); + if (aspect_ratio > 0){ + GtkWidget* aspectframe = gtk_aspect_frame_new(NULL, 0, 0, aspect_ratio, FALSE); + + gtk_frame_set_shadow_type(aspectframe, GTK_SHADOW_NONE); + gtk_widget_show(aspectframe); + gtk_container_add(aspectframe, gpdata->drawing_area); + gtk_container_add(GTK_CONTAINER(gp), aspectframe); + } + else{ + gtk_container_add(GTK_CONTAINER(gp), gpdata->drawing_area); + } gtk_widget_add_events( gpdata->drawing_area, @@ -2047,6 +2060,13 @@ static gchar vnciport_tooltip[] = " Remmina, e.g. with x11vnc:\n" " x11vnc -display :0 -connect 192.168.1.36:8888"); +static gchar aspect_ratio_tooltip[] = + N_("Lock the aspect ratio when dynamic resolution is enabled:\n" + "\n" + " • The aspect ratio should be entered as a decimal number, e.g. 1.777\n" + " • 16:9 corresponds roughly to 1.7777, 4:3 corresponds roughly to 1.333\n" + " • The default value of 0 does not enforce any aspect ratio"); + static gchar vncencodings_tooltip[] = N_("Overriding the pre-set VNC encoding quality:\n" "\n" @@ -2108,6 +2128,7 @@ static const RemminaProtocolSetting remmina_plugin_vnci_basic_settings[] = static const RemminaProtocolSetting remmina_plugin_vnc_advanced_settings[] = { { REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "encodings", N_("Override pre-set VNC encodings"), FALSE, NULL, vncencodings_tooltip }, + { REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "aspect_ratio", N_("Dynamic resolution enforced aspec ratio"), FALSE, NULL, aspect_ratio_tooltip }, { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "tightencoding", N_("Force tight encoding"), TRUE, NULL, N_("Enabling this may help when the remote desktop looks scrambled") }, { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disablesmoothscrolling", N_("Disable smooth scrolling"), FALSE, NULL, NULL }, { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "disablepasswordstoring", N_("Forget passwords after use"), TRUE, NULL, NULL }, diff --git a/src/include/remmina/plugin.h b/src/include/remmina/plugin.h index 7022de52e..a69b54359 100644 --- a/src/include/remmina/plugin.h +++ b/src/include/remmina/plugin.h @@ -220,6 +220,7 @@ typedef struct _RemminaPluginService { gchar * (*file_get_secret)(RemminaFile * remminafile, const gchar *setting); void (*file_set_int)(RemminaFile *remminafile, const gchar *setting, gint value); gint (*file_get_int)(RemminaFile *remminafile, const gchar *setting, gint default_value); + gdouble (*file_get_double)(RemminaFile *remminafile, const gchar *setting, gdouble default_value); void (*file_unsave_passwords)(RemminaFile *remminafile); void (*pref_set_value)(const gchar *key, const gchar *value); diff --git a/src/remmina_file.h b/src/remmina_file.h index ac6ced360..96964415c 100644 --- a/src/remmina_file.h +++ b/src/remmina_file.h @@ -95,6 +95,7 @@ gchar *remmina_file_get_secret(RemminaFile *remminafile, const gchar *setting); gchar *remmina_file_format_properties(RemminaFile *remminafile, const gchar *setting); void remmina_file_set_int(RemminaFile *remminafile, const gchar *setting, gint value); gint remmina_file_get_int(RemminaFile *remminafile, const gchar *setting, gint default_value); +gdouble remmina_file_get_double(RemminaFile *remminafile, const gchar *setting, gdouble default_value); void remmina_file_store_secret_plugin_password(RemminaFile *remminafile, const gchar *key, const gchar *value); gboolean remmina_file_remove_key(RemminaFile *remminafile, const gchar *setting); void remmina_file_set_state(RemminaFile *remminafile, const gchar *setting, const gchar *value); diff --git a/src/remmina_file_editor.c b/src/remmina_file_editor.c index 89f0f1e44..faafb7c80 100644 --- a/src/remmina_file_editor.c +++ b/src/remmina_file_editor.c @@ -914,7 +914,7 @@ static GtkWidget *remmina_file_editor_create_double(RemminaFileEditor *gfe, return widget; } -gdouble remmina_file_get_double(RemminaFile *remminafile, const gchar *setting, gfloat default_value); + static void remmina_file_editor_create_settings(RemminaFileEditor *gfe, GtkWidget *grid, const RemminaProtocolSetting *settings) diff --git a/src/remmina_plugin_manager.c b/src/remmina_plugin_manager.c index 6baedc3a4..1b056ea34 100644 --- a/src/remmina_plugin_manager.c +++ b/src/remmina_plugin_manager.c @@ -229,6 +229,7 @@ RemminaPluginService remmina_plugin_manager_service = remmina_file_get_secret, remmina_file_set_int, remmina_file_get_int, + remmina_file_get_double, remmina_file_unsave_passwords, remmina_pref_set_value, |