From: Daniel Caujolle-B. <f1...@us...> - 2003-03-28 13:50:18
|
Update of /cvsroot/xine/xine-ui/src/xitk/xine-toolkit In directory sc8-pr-cvs1:/tmp/cvs-serv24078/xine-toolkit Modified Files: label.c skin.c Log Message: fix label animation step/timer (now Centori should slide long titles). Fix (MIKE ???) panel hide/show cycle deadlock. Index: label.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/xine-toolkit/label.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- label.c 27 Mar 2003 20:52:04 -0000 1.53 +++ label.c 28 Mar 2003 13:50:12 -0000 1.54 @@ -161,6 +161,8 @@ label_private_data_t *private_data = (label_private_data_t *) w->private_data; xitk_image_t *font = (xitk_image_t *) private_data->font; + pthread_mutex_lock(&private_data->paint_mutex); + /* non skinable widget */ if(private_data->skin_element_name == NULL) { xitk_font_t *fs = NULL; @@ -212,8 +214,9 @@ XSync(private_data->imlibdata->x.disp, False); XUNLOCK(private_data->imlibdata->x.disp); - } + + pthread_mutex_unlock(&private_data->paint_mutex); } } @@ -230,7 +233,7 @@ do { - if(w && (w->visible == 1)) { + if((w->visible == 1)) { private_data->anim_offset += private_data->anim_step; @@ -242,16 +245,13 @@ * Label will change sooner, don't try to paint it till the change, * otherwise a deadlock will happened. */ - if(private_data->on_change == 0) { - pthread_mutex_lock(&private_data->paint_mutex); + if(private_data->on_change == 0) paint_label(private_data->lWidget); - pthread_mutex_unlock(&private_data->paint_mutex); - } - } + } xitk_usec_sleep(t_anim); - } while(w && w->running && private_data->anim_running); + } while(w->running && private_data->anim_running); pthread_exit(NULL); } @@ -264,6 +264,7 @@ int label_len; /* Inform animation thread to not paint the label */ + pthread_mutex_lock(&private_data->paint_mutex); private_data->on_change = 1; if(private_data->anim_running) { @@ -315,6 +316,7 @@ } private_data->on_change = 0; + pthread_mutex_unlock(&private_data->paint_mutex); } /* @@ -353,11 +355,8 @@ label_setup_label(w, label); } - if(private_data->on_change == 0) { - pthread_mutex_lock(&private_data->paint_mutex); + if(private_data->on_change == 0) paint_label(w); - pthread_mutex_unlock(&private_data->paint_mutex); - } xitk_skin_unlock(skonfig); @@ -380,10 +379,7 @@ /* Don't change label if another thread is currently doing the same thing */ if(!private_data->on_change) { label_setup_label(w, newlabel); - - pthread_mutex_lock(&private_data->paint_mutex); paint_label(w); - pthread_mutex_unlock(&private_data->paint_mutex); } } return 1; @@ -422,11 +418,9 @@ if(w && (((w->type & WIDGET_TYPE_MASK) == WIDGET_TYPE_LABEL))) { label_private_data_t *private_data = (label_private_data_t *) w->private_data; - if(private_data->on_change == 0) { - pthread_mutex_lock(&private_data->paint_mutex); + if(private_data->on_change == 0) paint_label(w); - pthread_mutex_unlock(&private_data->paint_mutex); - } + } } break; Index: skin.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/xine-toolkit/skin.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- skin.c 1 Mar 2003 10:35:01 -0000 1.22 +++ skin.c 28 Mar 2003 13:50:13 -0000 1.23 @@ -424,9 +424,10 @@ skin_get_next_line(skonfig); } else if(!strncasecmp(skonfig->ln, "label", 5)) { - skonfig->celement->print = 1; - - skonfig->celement->align = ALIGN_CENTER; + skonfig->celement->print = 1; + skonfig->celement->animation_step = 1; + skonfig->celement->animation_timer = xitk_get_timer_label_animation(); + skonfig->celement->align = ALIGN_CENTER; while(skin_end_section(skonfig) < 0) { skin_get_next_line(skonfig); |