diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index ce184b0..36fc64a 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -184,14 +184,17 @@ void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid { gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor); - gboolean status = 0; + gboolean status = 0,autoblock = 0; char *name; - gtk_tree_model_get(model,&iter,0,&status,5,&name,-1); + gtk_tree_model_get(model,&iter,0,&status,1,&autoblock,5,&name,-1); char *unit = yon_char_new(name); char *parsed_name = yon_char_divide(unit, yon_char_find_last(name,'.')); free(unit); unit=parsed_name; gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,!status,-1); + if (!status&&autoblock){ + on_config_autostop_clicked(NULL,path,widgets); + } char *config_sting = yon_config_get_by_key("SERVICES_ENABLE"); int size; config_str parsed = yon_char_parse(config_sting,&size,","); @@ -246,14 +249,17 @@ void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widg { gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter); gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor); - gboolean status = 0; + gboolean status = 0,autostart=0; char *name; - gtk_tree_model_get(model,&iter,1,&status,5,&name,-1); + gtk_tree_model_get(model,&iter,0,&autostart,1,&status,5,&name,-1); char *unit = yon_char_new(name); char *parsed_name = yon_char_divide(unit, yon_char_find_last(name,'.')); free(unit); unit=parsed_name; gtk_list_store_set(GTK_LIST_STORE(model),&iter,1,!status,-1); + if (!status&&autostart){ + on_config_autostart_clicked(NULL,path,widgets); + } char *config_sting = yon_config_get_by_key("SERVICES_DISABLE"); int size; config_str parsed = yon_char_parse(config_sting,&size,",");