diff --git a/source/ubl-settings-keyboard.c b/source/ubl-settings-keyboard.c index 852e695..330f6ab 100644 --- a/source/ubl-settings-keyboard.c +++ b/source/ubl-settings-keyboard.c @@ -50,13 +50,13 @@ void on_config_custom_save(GtkWidget *, main_window *){ void on_config_local_load(GtkWidget *,main_window *widgets){ yon_load_proceed(YON_CONFIG_LOCAL); - g_idle_add((GSourceFunc)yon_interface_update,widgets); + yon_interface_update(widgets); main_config.load_mode=1; } void on_config_global_load(GtkWidget *,main_window *widgets){ yon_load_proceed(YON_CONFIG_GLOBAL); - g_idle_add((GSourceFunc)yon_interface_update,widgets); + yon_interface_update(widgets); main_config.load_mode=0; } @@ -67,7 +67,7 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){ yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); textdomain(LocaleName); main_config.load_mode=3; - g_idle_add((GSourceFunc)yon_interface_update,widgets); + yon_interface_update(widgets); } void yon_load_proceed(YON_CONFIG_TYPE type){ @@ -75,7 +75,7 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ if (!yon_char_is_empty(config_get_default_command)) yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); if (type==YON_CONFIG_GLOBAL){ - yon_config_load_config(type,config_get_global_command,NULL); + yon_config_load_config(type,yon_debug_output("%s\n",config_get_global_command),NULL); } else if (type==YON_CONFIG_LOCAL){ yon_config_load_config(type,config_get_local_command,NULL); } else if (type==YON_CONFIG_CUSTOM){ @@ -106,6 +106,11 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ } gboolean yon_interface_update(main_window *widgets){ + g_signal_handlers_block_by_func(G_OBJECT(widgets->ModelCombo),G_CALLBACK(on_model_changed),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->MoveDownButton),G_CALLBACK(on_move_down),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->MoveUpButton),G_CALLBACK(on_move_up),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->OptionsButton),G_CALLBACK(on_options_open),widgets); + g_signal_handlers_block_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets); gtk_list_store_clear(widgets->layoutsList); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0); @@ -125,7 +130,6 @@ gboolean yon_interface_update(main_window *widgets){ } } } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0); - free(name); } { char *name = yon_config_get_by_key(options_parameter); @@ -142,7 +146,6 @@ gboolean yon_interface_update(main_window *widgets){ } } } - free(name); } { if (main_config.layouts_list){ @@ -156,7 +159,6 @@ gboolean yon_interface_update(main_window *widgets){ else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),2); } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); - free(name); if (main_config.layouts_list){ int size=0; name = yon_config_get_by_key(keyboard_layout_parameter); @@ -175,6 +177,12 @@ gboolean yon_interface_update(main_window *widgets){ } } } + + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ModelCombo),G_CALLBACK(on_model_changed),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->MoveDownButton),G_CALLBACK(on_move_down),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->MoveUpButton),G_CALLBACK(on_move_up),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OptionsButton),G_CALLBACK(on_options_open),widgets); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets); return G_SOURCE_REMOVE; }