Test fix for error log window freeze

pull/59/head
parent 61acaa51ec
commit 8cd83d7ef5

@ -951,6 +951,12 @@ void *on_config_save(void *data){
yon_char_parsed_free(parameters,size);
if (system(yon_debug_output("%s\n",command))){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR);
free(command);
main_config.config_save_thread=NULL;
main_config.install_thread=0;
main_config.install_complete=1;
pthread_exit(NULL);
return 0;
};
free(command);
main_config.install_thread=0;
@ -1247,24 +1253,30 @@ log_window *yon_log_window_new(){
gboolean yon_read_log(void *data);
gboolean yon_read_log(void *data){
log_window *window = (log_window*)data;
if (window->Window){
int size;
while (!main_config.install_complete&&main_config.log_progress_buzy){};
main_config.log_progress_buzy=1;
config_str parsed = yon_file_open(window->command,&size);
main_config.log_progress_buzy=0;
if (size){
char *final = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(window->LogLabel),final);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow))));
log_window *window = (log_window*)data;
if (window->Window){
int size;
while (!main_config.install_complete&&main_config.log_progress_buzy){};
main_config.log_progress_buzy=1;
config_str parsed = yon_file_open(window->command,&size);
main_config.log_progress_buzy=0;
if (size){
char *final = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(window->LogLabel),final);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow))));
}
free(final);
yon_char_parsed_free(parsed,size);
}
yon_debug_output("%s\n","Log read");
if (!main_config.install_complete){
return 1;
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0);
gtk_widget_set_sensitive(window->ScrollToEndCheck,0);
}
}
free(final);
yon_char_parsed_free(parsed,size);
}
return 1;
}
return 0;
}

Loading…
Cancel
Save