Fixed crash, installed drivers is shown while driver list is loading

pull/28/head
parent 898282d1ef
commit 97a8330b49

@ -540,7 +540,7 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){
} }
void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){ void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){
if (pagen==1){ if (pagen==1&&videoconfig.dblock==0){
GtkTreeIter iter; GtkTreeIter iter;
if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){ if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){
pthread_t tid; pthread_t tid;
@ -1080,6 +1080,7 @@ dictionary *yon_proprieary_get(){
int size=0; int size=0;
config_str drivers=NULL; config_str drivers=NULL;
config_str rtn=NULL; config_str rtn=NULL;
rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
drivers=yon_config_load(get_proprietary_drivers_local_command,&drivers_size); drivers=yon_config_load(get_proprietary_drivers_local_command,&drivers_size);
if (drivers){ if (drivers){
printf("%s\n",drivers[0]); printf("%s\n",drivers[0]);
@ -1102,7 +1103,6 @@ dictionary *yon_proprieary_get(){
// yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); // yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size); drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size);
rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
for (int dr_desc=0;dr_desc<size;dr_desc++){ for (int dr_desc=0;dr_desc<size;dr_desc++){
for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){ for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
@ -1111,9 +1111,11 @@ dictionary *yon_proprieary_get(){
char *ubm=yon_char_divide_search(pack,";",-1); char *ubm=yon_char_divide_search(pack,";",-1);
pack=yon_char_divide_search(pack,";",-1); pack=yon_char_divide_search(pack,";",-1);
if (strcmp(drivers[dr_foun],ubm)==0){ if (strcmp(drivers[dr_foun],ubm)==0){
videoconfig.dblock=1;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]); yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
} }
else if (strcmp(pack,"")!=0&&!yon_dictionary_find(&videoconfig.proprietary,pack)){ else if (strcmp(pack,"")!=0&&!yon_dictionary_find(&videoconfig.proprietary,pack)){
videoconfig.dblock=1;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]); yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
} }
} }
@ -1193,6 +1195,7 @@ void yon_setup_config(char *configcommand)
videoconfig.failsafenVidia=NULL; videoconfig.failsafenVidia=NULL;
videoconfig.gapfix=0; videoconfig.gapfix=0;
videoconfig.loaded_config=NULL; videoconfig.loaded_config=NULL;
videoconfig.dblock=0;
if(videoconfig.optirun) if(videoconfig.optirun)
free(videoconfig.optirun); free(videoconfig.optirun);
videoconfig.optirun=NULL; videoconfig.optirun=NULL;

@ -140,6 +140,7 @@ typedef struct
int lock_help; int lock_help;
dictionary *monitor_output_layers; dictionary *monitor_output_layers;
GtkWidget *pack_box; GtkWidget *pack_box;
int dblock;
} config; } config;
typedef struct typedef struct

Loading…
Cancel
Save