Fixed keyboard layout saving

pull/17/head
parent 8c27a3c0c9
commit a647750a45
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -10,6 +10,7 @@ gboolean yon_interface_update(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->ScrollLockSwitch),G_CALLBACK(on_scroll_lock_switch),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->ComposeSwitch),G_CALLBACK(on_compose_switch),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->DefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo),0);
@ -120,6 +121,7 @@ gboolean yon_interface_update(main_window *widgets){
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ScrollLockSwitch),G_CALLBACK(on_scroll_lock_switch),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ComposeSwitch),G_CALLBACK(on_compose_switch),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->DefaultLayoutsSwitch),G_CALLBACK(on_layout_default_toggled),widgets);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets);
return G_SOURCE_REMOVE;
}
@ -267,7 +269,7 @@ void on_scroll_lock_switch(GtkWidget *,int status,main_window *widgets){
// }
// }
void on_layout_default_toggled(GtkWidget *, int status, main_window *widgets){
void on_layout_default_sensitive_toggled(GtkWidget *, int status, main_window *widgets){
gtk_widget_set_sensitive(widgets->LayoutTree,!status);
gtk_widget_set_sensitive(widgets->LayoutAddButton,!status);
if (status){
@ -278,15 +280,24 @@ void on_layout_default_toggled(GtkWidget *, int status, main_window *widgets){
on_layout_selection_changed(GTK_TREE_VIEW(widgets->LayoutTree),widgets);
}
}
void on_layout_default_toggled(GtkWidget *, int status, main_window *widgets){
if (!status){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->LayoutsList);
GtkTreeIter iter;
char *locales = NULL;
for_iter(model,&iter){
char *target;
char *target, *variant;
gtk_tree_model_get(model,&iter,0,&target,-1);
char *temp = yon_char_append_element(locales?locales:"",target,",");
gtk_tree_model_get(model,&iter,0,&target,1,&variant,-1);
char *key = NULL;
if (!yon_char_is_empty(variant)){
key = yon_char_unite(target,"_",variant,NULL);
} else {
key = yon_char_new(target);
}
char *temp = yon_char_append_element(locales?locales:"",key,",");
if (!yon_char_is_empty(locales)) free(locales);
locales = temp;
}
@ -365,6 +376,7 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->OptionsTree),"cursor-changed",G_CALLBACK(on_option_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(on_layout_default_sensitive_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->LayoutMoveUpButton),"clicked",G_CALLBACK(on_layout_move_up),widgets);
g_signal_connect(G_OBJECT(widgets->LayoutMoveDownButton),"clicked",G_CALLBACK(on_layout_move_down),widgets);

@ -279,4 +279,5 @@ void on_font_selection_changed(GtkWidget *,layouts_window *window);
void yon_interface_save(main_window *widgets);
void on_layout_default_toggled(GtkWidget *, int status, main_window *widgets);
void on_layout_selection_changed(GtkTreeView*,main_window *widgets);
void on_option_selection_changed(GtkTreeView *self,main_window *widgets);
void on_option_selection_changed(GtkTreeView *self,main_window *widgets);
void on_layout_default_sensitive_toggled(GtkWidget *, int status, main_window *widgets);
Loading…
Cancel
Save