diff options
author | myheroyuki <myheroyuki@outlook.com> | 2023-06-28 17:48:09 +0300 |
---|---|---|
committer | myheroyuki <myheroyuki@outlook.com> | 2023-06-28 17:48:09 +0300 |
commit | 24138f6c16b239058db0f93fab4710fa092d8e57 (patch) | |
tree | d4a3812d001a34bd0f484fe8eb6e266bed6e4d45 | |
parent | 3e440b4e36f2def0aa2efdc2ae3bd1c0db42f254 (diff) |
[REM-2926] Added ability to set a fixed aspect ratio for vnc connections when using dynamic resolution. No GUI option yet, only in config files
-rw-r--r-- | plugins/vnc/vnc_plugin.c | 15 | ||||
-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, 18 insertions, 2 deletions
diff --git a/plugins/vnc/vnc_plugin.c b/plugins/vnc/vnc_plugin.c index adecffff4..870ec0335 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, 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, |