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