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
diff options
context:
space:
mode:
authormyheroyuki <myheroyuki@outlook.com>2023-06-28 17:48:09 +0300
committermyheroyuki <myheroyuki@outlook.com>2023-06-28 17:48:09 +0300
commit24138f6c16b239058db0f93fab4710fa092d8e57 (patch)
treed4a3812d001a34bd0f484fe8eb6e266bed6e4d45
parent3e440b4e36f2def0aa2efdc2ae3bd1c0db42f254 (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.c15
-rw-r--r--src/include/remmina/plugin.h1
-rw-r--r--src/remmina_file.h1
-rw-r--r--src/remmina_file_editor.c2
-rw-r--r--src/remmina_plugin_manager.c1
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,