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:
authorbhatman1441 <blackhat1441@protonmail.com>2024-01-03 16:14:45 +0300
committerbhatman1441 <blackhat1441@protonmail.com>2024-01-03 16:14:45 +0300
commit3ae90eb77ed6d2bdc09e5f73c049f3361e1559c4 (patch)
treed94c72eaddd1ae42b2bdaf1916b4eba33b0fa30a
parent94db9006db34a2e3e9c03ae36d55d07fc1fe1739 (diff)
[freerdp] Fix segfault from opening Preferences menu
-rw-r--r--plugins/rdp/rdp_settings.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/plugins/rdp/rdp_settings.c b/plugins/rdp/rdp_settings.c
index b0110c66e..7a3d4aa41 100644
--- a/plugins/rdp/rdp_settings.c
+++ b/plugins/rdp/rdp_settings.c
@@ -221,9 +221,24 @@ static void remmina_rdp_settings_grid_load_layout(RemminaPluginRdpsetGrid *grid)
#if FREERDP_VERSION_MAJOR >= 3
size_t layout_count = 0;
layouts = freerdp_keyboard_get_layouts(RDP_KEYBOARD_LAYOUT_TYPE_STANDARD | RDP_KEYBOARD_LAYOUT_TYPE_VARIANT, &layout_count);
+
+ for (DWORD i = 0; i < layout_count; i++) {
+ s = g_strdup_printf("%08X - %s", layouts[i].code, layouts[i].name);
+ gtk_list_store_append(grid->keyboard_layout_store, &iter);
+ gtk_list_store_set(grid->keyboard_layout_store, &iter, 0, layouts[i].code, 1, s, -1);
+
+ if (rdp_keyboard_layout == layouts[i].code)
+ gtk_combo_box_set_active(GTK_COMBO_BOX(grid->keyboard_layout_combo), i + 1);
+
+ if (keyboard_layout == layouts[i].code)
+ gtk_label_set_text(GTK_LABEL(grid->keyboard_layout_label), s);
+
+ g_free(s);
+ }
+
+ freerdp_keyboard_layouts_free(layouts, layout_count);
#else
layouts = freerdp_keyboard_get_layouts(RDP_KEYBOARD_LAYOUT_TYPE_STANDARD | RDP_KEYBOARD_LAYOUT_TYPE_VARIANT);
-#endif
for (DWORD i = 0; layouts[i].code; i++) {
s = g_strdup_printf("%08X - %s", layouts[i].code, layouts[i].name);
@@ -239,9 +254,6 @@ static void remmina_rdp_settings_grid_load_layout(RemminaPluginRdpsetGrid *grid)
g_free(s);
}
-#if FREERDP_VERSION_MAJOR >= 3
- freerdp_keyboard_layouts_free(layouts, layout_count);
-#else
freerdp_keyboard_layouts_free(layouts);
#endif
}