Improved repetition detection and status bar despawn process

pull/62/head
parent 1700a22f78
commit b32294c679

@ -2273,6 +2273,7 @@ main_window *setup_window(){
int cur_size=0; int cur_size=0;
config_str cur_watcher = yon_char_parse(custom_watchers[i],&cur_size,";"); config_str cur_watcher = yon_char_parse(custom_watchers[i],&cur_size,";");
if (cur_watcher){ if (cur_watcher){
cur_watcher = yon_char_parsed_append(cur_watcher,&cur_size,NULL);
char *cur_name; char *cur_name;
int found=0; int found=0;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->list),&iter); int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->list),&iter);
@ -2285,7 +2286,7 @@ main_window *setup_window(){
} }
if (!found) if (!found)
gtk_list_store_append(widgets->list,&iter); gtk_list_store_append(widgets->list,&iter);
gtk_list_store_set(widgets->list,&iter,0,cur_watcher[0],1,cur_watcher[1],2,cur_watcher[2],-1); gtk_list_store_set(widgets->list,&iter,0,cur_watcher[0],1,cur_watcher[1],2,cur_watcher[2]?cur_watcher[2]:"",-1);
yon_char_parsed_free(cur_watcher,cur_size); yon_char_parsed_free(cur_watcher,cur_size);
} }
} }

@ -2196,7 +2196,7 @@ struct temp_statusbox {
void _yon_ubl_status_box_timed_remove(struct temp_statusbox *statusstruct){ void _yon_ubl_status_box_timed_remove(struct temp_statusbox *statusstruct){
sleep(statusstruct->times); sleep(statusstruct->times);
if (statusstruct->revealer){ if (status_thread_busy){
gtk_revealer_set_reveal_child(GTK_REVEALER(statusstruct->revealer),0); gtk_revealer_set_reveal_child(GTK_REVEALER(statusstruct->revealer),0);
sleep(1); sleep(1);
gtk_widget_destroy(statusstruct->revealer); gtk_widget_destroy(statusstruct->revealer);
@ -2205,6 +2205,10 @@ void _yon_ubl_status_box_timed_remove(struct temp_statusbox *statusstruct){
status_thread_busy=0; status_thread_busy=0;
} }
void __yon_ubl_status_box_destroyed(){
status_thread_busy=0;
}
void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int timeout,BACKGROUND_IMAGE_TYPE type){ void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int timeout,BACKGROUND_IMAGE_TYPE type){
if (!status_thread_busy){ if (!status_thread_busy){
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
@ -2218,6 +2222,7 @@ void yon_ubl_status_box_spawn(GtkContainer *container,char *display_text, int ti
gtk_widget_show_all(revealer); gtk_widget_show_all(revealer);
gtk_revealer_set_reveal_child(GTK_REVEALER(revealer),1); gtk_revealer_set_reveal_child(GTK_REVEALER(revealer),1);
g_signal_connect(G_OBJECT(revealer),"destroy", G_CALLBACK(__yon_ubl_status_box_destroyed),NULL);
gtk_widget_set_margin_bottom(label,9); gtk_widget_set_margin_bottom(label,9);
gtk_widget_set_margin_top(label,9); gtk_widget_set_margin_top(label,9);

@ -15,6 +15,7 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include <vte/vte.h> #include <vte/vte.h>
#include <time.h>
#include "../compile/ubl-cmake.h" #include "../compile/ubl-cmake.h"
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND

Loading…
Cancel
Save