Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_calc.c edje_message_queue.c edje_text.c edje_util.c 


Log Message:


aaaaaaaaaaaah message queue related fix.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_calc.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- edje_calc.c 14 Jul 2004 09:59:29 -0000      1.36
+++ edje_calc.c 12 Aug 2004 18:55:45 -0000      1.37
@@ -182,12 +182,15 @@
 {
    Evas_List *l;
    
+//   printf("ed->freeze = %i\n", ed->freeze);
+//   printf("ed->calc_only = %i\n", ed->calc_only);
    if (!ed->dirty) return;
    if (ed->freeze)
      {
        ed->recalc = 1;
        if (!ed->calc_only) return;
      }
+//   printf("recalcies\n");
    for (l = ed->parts; l; l = l->next)
      {
        Edje_Real_Part *ep;
@@ -504,12 +507,14 @@
        char      *font;
        int        size;
        Evas_Coord tw, th;
+       char       buf[4096];
        
        text = chosen_desc->text.text;
        font = chosen_desc->text.font;
        size = chosen_desc->text.size;
        
-       if ((chosen_desc->text.text_class) && (strlen(chosen_desc->text.text_class) > 
0))
+       if ((chosen_desc->text.text_class) && 
+           (strlen(chosen_desc->text.text_class) > 0))
          {
             Edje_Text_Class *tc;
             
@@ -524,6 +529,15 @@
        if (ep->text.text) text = ep->text.text;
        if (ep->text.font) font = ep->text.font;
        if (ep->text.size > 0) size = ep->text.size;
+       
+        strcpy(buf, "fonts/");
+       strcat(buf, font);
+       
+       evas_object_text_font_set(ep->object, buf, 10);
+       
+       if (evas_object_text_ascent_get(ep->object) > 0) font = buf;
+//     font = buf;
+       
        evas_object_text_font_set(ep->object, font, size);
        if ((chosen_desc->text.min_x) || (chosen_desc->text.min_y))
          {
@@ -698,6 +712,7 @@
    Edje_Part_Description *chosen_desc;
    double pos = 0.0;
 
+//   printf("^^^^calc: %s\n", ep->part->name);
    if (ep->calculated) return;
    if (ep->calculating)
      {
@@ -716,6 +731,8 @@
    if (ep->param2.rel2_to_x)  _edje_part_recalc(ed, ep->param2.rel2_to_x);
    if (ep->param2.rel2_to_y)  _edje_part_recalc(ed, ep->param2.rel2_to_y);
    
+//   printf("CALC\n");
+   
    /* actually calculate now */
    if (ep->description_pos == 0.0)
      chosen_desc = ep->param1.description;
@@ -728,6 +745,7 @@
        ep->calculated = 1;
        return;
      }
+//   printf("CALC2\n");
    
    ep->chosen_description = chosen_desc;
    if (ep->param1.description)
@@ -852,6 +870,7 @@
      }
    if (!ed->calc_only)
      {
+//     printf("APPL\n");
        if (ep->part->type == EDJE_PART_TYPE_RECTANGLE)
          {
             evas_object_move(ep->object, ed->x + p3.x, ed->y + p3.y);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_message_queue.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- edje_message_queue.c        6 Jul 2004 02:40:14 -0000       1.6
+++ edje_message_queue.c        12 Aug 2004 18:55:45 -0000      1.7
@@ -1,6 +1,9 @@
 #include "Edje.h"
+#include <Ecore_Job.h>
 #include "edje_private.h"
 
+Ecore_Job *job = NULL;
+
 void
 edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
 {
@@ -23,7 +26,6 @@
 
 static Evas_List *msgq = NULL;
 static Evas_List *tmp_msgq = NULL;
-static Ecore_Idle_Enterer *idler = NULL;
 
 static int
 _edje_dummy_timer(void *data)
@@ -31,25 +33,27 @@
    return 0;
 }
 
-static int
-_edje_idler(void *data)
+static void
+_edje_job(void *data)
 {
    _edje_message_queue_process();
-   return 1;
+   job = NULL;
 }
 
 void
 _edje_message_init(void)
 {
-   idler = ecore_idle_enterer_add(_edje_idler, NULL);
 }
 
 void
 _edje_message_shutdown(void)
 {
    _edje_message_queue_clear();
-   ecore_idle_enterer_del(idler);
-   idler = NULL;
+   if (job)
+     {
+       ecore_job_del(job);
+       job = NULL;
+     }
 }
 
 void
@@ -197,7 +201,8 @@
    Edje_Message *em;
    int i;
    unsigned char *msg = NULL;
-   
+
+   if (!job) job = ecore_job_add(_edje_job, NULL);
    em = _edje_message_new(ed, queue, type, id);
    if (!em) return;
    switch (em->type)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_text.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- edje_text.c 24 May 2004 08:40:21 -0000      1.17
+++ edje_text.c 12 Aug 2004 18:55:45 -0000      1.18
@@ -292,6 +292,7 @@
    Evas_Coord  tw, th;
    Evas_Coord  ox, oy, sw, sh;
    char    *buf = NULL;
+   char     buf2[4096];
 
    text = chosen_desc->text.text;
    font = chosen_desc->text.font;
@@ -312,6 +313,15 @@
    if (ep->text.text) text = ep->text.text;
    if (ep->text.font) font = ep->text.font;
    if (ep->text.size > 0) size = ep->text.size;
+   
+   strcpy(buf2, "fonts/");
+   strcat(buf2, font);
+   
+   evas_object_text_font_set(ep->object, buf2, 10);
+   
+   if (evas_object_text_ascent_get(ep->object) > 0) font = buf2;
+//   font = buf2;
+   
    ox = _edje_text_styles[ep->part->effect].offset.x;
    oy = _edje_text_styles[ep->part->effect].offset.y;
    sw = params->w - (_edje_text_styles[ep->part->effect].pad.l + 
_edje_text_styles[ep->part->effect].pad.r);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- edje_util.c 14 Jul 2004 09:59:29 -0000      1.40
+++ edje_util.c 12 Aug 2004 18:55:45 -0000      1.41
@@ -351,6 +351,7 @@
    Evas_List *l;
    Edje_Text_Class *tc;
 
+//   printf("------------ edje_object_text_class_set\n");
    ed = _edje_fetch(obj);
    if ((!ed) || (!text_class)) return;
    if (size < 0.0) size = 0.0;
@@ -1455,15 +1456,25 @@
 _edje_freeze(Edje *ed)
 {
    ed->freeze++;
+//   printf("FREEZE %i\n", ed->freeze);
    return ed->freeze;
 }
 
 int
 _edje_thaw(Edje *ed)
 {
+//   printf("THAW %i\n", ed->freeze);
    ed->freeze--;
-   if (ed->freeze < 0) ed->freeze = 0;
-   if ((ed->freeze == 0) && (ed->recalc)) _edje_recalc(ed);
+   if (ed->freeze < 0)
+     {
+//     printf("-------------########### OVER THAW\n");
+       ed->freeze = 0;
+     }
+   if ((ed->freeze == 0) && (ed->recalc)) 
+     {
+//     printf("thaw recalc\n");
+       _edje_recalc(ed);
+     }
    return ed->freeze;
 }
 




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to