From 3c2696a1e7be08e58ece1661a4dec5b0a8e76198 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 19 Aug 2025 18:00:36 +0600 Subject: [PATCH] Keyboard table loading --- source/ubinstall-gtk-keyboard.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index bbf67fe..bd9d25c 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -31,7 +31,7 @@ int yon_keyboard_save(main_window *widgets){ } } - if (yon_char_is_empty(layouts_list)) + if (!yon_char_is_empty(layouts_list)) yon_config_register(xkblayout_parameter,xkblayout_parameter_command,layouts_list); else yon_config_remove_by_key(xkblayout_parameter); @@ -283,6 +283,7 @@ void yon_keyboard_init(main_window *widgets){ char *keyboard = config(xkbmodel_parameter); char *option_parameter = config(xkboptions_parameter); char *layouts = config(xkblayout_parameter); + char *variant = config(xkbvariant_parameter); if (!yon_char_is_empty(keyboard)){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo),keyboard); @@ -300,15 +301,24 @@ void yon_keyboard_init(main_window *widgets){ int parsed_size; config_str parsed = yon_char_parse(layouts,&parsed_size,","); - GtkTreeIter iter; + GtkTreeIter iter, chiter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->LayoutList); for_iter(model,&iter){ char *target; gtk_tree_model_get(model,&iter,0,&target,-1); if (yon_char_parsed_check_exist(parsed,parsed_size,target)>-1){ gtk_tree_store_set(widgets->LayoutList,&iter,2,1,3,1,-1); + if (!strcmp(variant,target)){ + gtk_tree_store_set(widgets->LayoutList,&iter,4,1,-1); + } else { + gtk_tree_store_set(widgets->LayoutList,&iter,4,0,-1); + + } } else { - gtk_tree_store_set(widgets->LayoutList,&iter,3,0,-1); + gtk_tree_store_set(widgets->LayoutList,&iter,3,0,4,0,-1); + } + for (int valid2 = gtk_tree_model_iter_children(model,&chiter,&iter);valid2;valid2 = gtk_tree_model_iter_next(model,&chiter)){ + } } } else {