|
|
|
|
@ -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 {
|
|
|
|
|
|