Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        dialog.c 


Log Message:
Speed up dialog updates.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/dialog.c,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -3 -r1.111 -r1.112
--- dialog.c    14 May 2005 19:40:33 -0000      1.111
+++ dialog.c    16 May 2005 17:35:55 -0000      1.112
@@ -209,6 +209,7 @@
 static void         MoveTableBy(Dialog * d, DItem * di, int dx, int dy);
 static void         DialogItemsRealize(Dialog * d);
 
+static void         DialogUpdate(Dialog * d);
 static char         dialog_update_pending = 0;
 
 void
@@ -628,31 +629,31 @@
 
    ewin = AddInternalToFamily(d->win, "DIALOG", EWIN_TYPE_DIALOG, d,
                              DialogEwinInit);
-   if (ewin)
-     {
-       ewin->client.event_mask |= KeyPressMask | ExposureMask;
-       ESelectInput(d->win, ewin->client.event_mask);
+   if (!ewin)
+      return;
 
-       if (ewin->client.already_placed)
-         {
-            MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), w, h);
-         }
+   ewin->client.event_mask |= KeyPressMask | ExposureMask;
+   ESelectInput(d->win, ewin->client.event_mask);
+
+   if (ewin->client.already_placed)
+     {
+       MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), w, h);
+     }
+   else
+     {
+       ResizeEwin(ewin, w, h);
+       if (FindADialog() > 1)
+          ArrangeEwin(ewin);
        else
-         {
-            ResizeEwin(ewin, w, h);
-            if (FindADialog() > 1)
-               ArrangeEwin(ewin);
-            else
-               ArrangeEwinCentered(ewin, 0);
-         }
-       ShowEwin(ewin);
+          ArrangeEwinCentered(ewin, 0);
      }
-
    if (!FindDialog(d->win))
       AddItem(d, d->name, d->win, LIST_TYPE_DIALOG);
 
-   ESync();
    DialogRedraw(d);
+   DialogUpdate(d);
+   ShowEwin(ewin);
+   ESync();
 }
 
 void
@@ -1563,7 +1564,7 @@
 
    if (di->x > d->xu2 || di->y > d->yu2 ||
        di->x + di->w <= d->xu1 || di->y + di->h <= d->yu1)
-      return;
+      goto done;
 
    switch (di->type)
      {
@@ -1728,9 +1729,19 @@
        break;
      }
 
+ done:
    di->update = 0;
 }
 
+static void
+DialogUpdate(Dialog * d)
+{
+   DialogDrawItem(d, d->item);
+   d->update = 0;
+   d->xu1 = d->yu1 = 99999;
+   d->xu2 = d->yu2 = 0;
+}
+
 void
 DialogsCheckUpdate(void)
 {
@@ -1747,11 +1758,7 @@
        d = ds[i];
        if (!d->update)
           continue;
-
-       DialogDrawItem(d, d->item);
-       d->update = 0;
-       d->xu1 = d->yu1 = 99999;
-       d->xu2 = d->yu2 = 0;
+       DialogUpdate(d);
      }
    if (ds)
       Efree(ds);
@@ -2207,7 +2214,7 @@
                (di->func) (d, di->val, di->data);
          }
 
-       DialogDrawItems(d, di, 0, 0, 99999, 99999);
+       DialogDrawItems(d, di, di->x, di->y, di->w, di->h);
        break;
      }
 }
@@ -2292,7 +2299,7 @@
 
    di->clicked = 1;
 
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+   DialogDrawItems(d, di, di->x, di->y, di->w, di->h);
 }
 
 static void
@@ -2333,7 +2340,7 @@
             if (dii->item.radio_button.onoff)
               {
                  dii->item.radio_button.onoff = 0;
-                 DialogDrawItems(d, dii, 0, 0, 99999, 99999);
+                 DialogDrawItems(d, dii, dii->x, dii->y, dii->w, dii->h);
               }
             dii = dii->item.radio_button.next;
          }
@@ -2347,7 +2354,7 @@
        break;
      }
 
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+   DialogDrawItems(d, di, di->x, di->y, di->w, di->h);
 
    if (di->func)
       di->func(d, di->val, di->data);
@@ -2378,7 +2385,7 @@
 
    di->hilited = 1;
 
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+   DialogDrawItems(d, di, di->x, di->y, di->w, di->h);
 }
 
 static void
@@ -2406,7 +2413,7 @@
 
    di->hilited = 0;
 
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+   DialogDrawItems(d, di, di->x, di->y, di->w, di->h);
 }
 
 static void




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to