Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: E.h arrange.c Log Message: Rearrange some code. No actual changes. =================================================================== RCS file: /cvs/e/e16/e/src/E.h,v retrieving revision 1.549 retrieving revision 1.550 diff -u -3 -r1.549 -r1.550 --- E.h 22 Apr 2006 22:00:01 -0000 1.549 +++ E.h 23 Apr 2006 08:42:16 -0000 1.550 @@ -541,11 +541,6 @@ #define ARRANGE_BY_SIZE 1 #define ARRANGE_BY_POSITION 2 -void ArrangeRects(RectBox * fixed, int fixed_count, - RectBox * floating, int floating_count, - RectBox * sorted, int startx, int starty, - int width, int height, int policy, - char initial_window); void SnapEwin(EWin * ewin, int dx, int dy, int *new_dx, int *new_dy); void ArrangeEwin(EWin * ewin); =================================================================== RCS file: /cvs/e/e16/e/src/arrange.c,v retrieving revision 1.88 retrieving revision 1.89 diff -u -3 -r1.88 -r1.89 --- arrange.c 22 Apr 2006 22:00:01 -0000 1.88 +++ arrange.c 23 Apr 2006 08:42:17 -0000 1.89 @@ -29,23 +29,23 @@ #include "screen.h" static int -ArrangeAddToList(int **array, int current_size, int value) +ArrangeAddToList(int *array, int current_size, int value) { int i, j; for (i = 0; i < current_size; i++) { - if (value < (*array)[i]) + if (value < array[i]) { for (j = current_size; j > i; j--) - (*array)[j] = (*array)[j - 1]; - (*array)[i] = value; + array[j] = array[j - 1]; + array[i] = value; return current_size + 1; } - else if (value == (*array)[i]) + else if (value == array[i]) return current_size; } - (*array)[current_size] = value; + array[current_size] = value; return current_size + 1; } @@ -71,7 +71,7 @@ list[b].h = bb.h; } -void +static void ArrangeRects(RectBox * fixed, int fixed_count, RectBox * floating, int floating_count, RectBox * sorted, int startx, int starty, int width, int height, int policy, char initial_window) @@ -179,22 +179,22 @@ xsize = 0; ysize = 0; /* put all the sorted rects into the xy arrays */ - xsize = ArrangeAddToList(&xarray, xsize, startx); - xsize = ArrangeAddToList(&xarray, xsize, width); - ysize = ArrangeAddToList(&yarray, ysize, starty); - ysize = ArrangeAddToList(&yarray, ysize, height); + xsize = ArrangeAddToList(xarray, xsize, startx); + xsize = ArrangeAddToList(xarray, xsize, width); + ysize = ArrangeAddToList(yarray, ysize, starty); + ysize = ArrangeAddToList(yarray, ysize, height); for (j = 0; j < num_sorted; j++) { if (sorted[j].x < width) - xsize = ArrangeAddToList(&xarray, xsize, sorted[j].x); + xsize = ArrangeAddToList(xarray, xsize, sorted[j].x); if ((sorted[j].x + sorted[j].w) < width) xsize = - ArrangeAddToList(&xarray, xsize, sorted[j].x + sorted[j].w); + ArrangeAddToList(xarray, xsize, sorted[j].x + sorted[j].w); if (sorted[j].y < height) - ysize = ArrangeAddToList(&yarray, ysize, sorted[j].y); + ysize = ArrangeAddToList(yarray, ysize, sorted[j].y); if ((sorted[j].y + sorted[j].h) < height) ysize = - ArrangeAddToList(&yarray, ysize, sorted[j].y + sorted[j].h); + ArrangeAddToList(yarray, ysize, sorted[j].y + sorted[j].h); } /* fill the allocation array */ for (j = 0; j < (xsize - 1) * (ysize - 1); filled[j++] = 0) @@ -390,22 +390,22 @@ xsize = 0; ysize = 0; /* put all the sorted rects into the xy arrays */ - xsize = ArrangeAddToList(&xarray, xsize, 0); - xsize = ArrangeAddToList(&xarray, xsize, width); - ysize = ArrangeAddToList(&yarray, ysize, 0); - ysize = ArrangeAddToList(&yarray, ysize, height); + xsize = ArrangeAddToList(xarray, xsize, 0); + xsize = ArrangeAddToList(xarray, xsize, width); + ysize = ArrangeAddToList(yarray, ysize, 0); + ysize = ArrangeAddToList(yarray, ysize, height); for (j = 0; j < num_sorted; j++) { if (sorted[j].x < width) - xsize = ArrangeAddToList(&xarray, xsize, sorted[j].x); + xsize = ArrangeAddToList(xarray, xsize, sorted[j].x); if ((sorted[j].x + sorted[j].w) < width) xsize = - ArrangeAddToList(&xarray, xsize, sorted[j].x + sorted[j].w); + ArrangeAddToList(xarray, xsize, sorted[j].x + sorted[j].w); if (sorted[j].y < height) - ysize = ArrangeAddToList(&yarray, ysize, sorted[j].y); + ysize = ArrangeAddToList(yarray, ysize, sorted[j].y); if ((sorted[j].y + sorted[j].h) < height) ysize = - ArrangeAddToList(&yarray, ysize, sorted[j].y + sorted[j].h); + ArrangeAddToList(yarray, ysize, sorted[j].y + sorted[j].h); } /* fill the allocation array */ for (j = 0; j < (xsize - 1) * (ysize - 1); filled[j++] = 0) @@ -847,24 +847,61 @@ ret = NULL; lst = EwinListGetAll(&num); - if ((lst) && (num > 0)) + if (num <= 1) + { + ArrangeEwinCenteredXY(ewin, px, py); + return; + } + + fixed = Emalloc(sizeof(RectBox) * num); + j = 0; + for (i = 0; i < num; i++) { - fixed = Emalloc(sizeof(RectBox) * num); - j = 0; + EWin *e = lst[i]; + + if (e == ewin || + e->state.iconified || e->props.ignorearrange || + EoGetLayer(e) == 0 || !EWinIsOnViewport(e, EoGetDesk(ewin))) + continue; + + fixed[j].data = e; + fixed[j].x = EoGetX(e); + fixed[j].y = EoGetY(e); + fixed[j].w = EoGetW(e); + fixed[j].h = EoGetH(e); + if (fixed[j].x < 0) + { + fixed[j].w += fixed[j].x; + fixed[j].x = 0; + } + if ((fixed[j].x + fixed[j].w) > VRoot.w) + fixed[j].w = VRoot.w - fixed[j].x; + if (fixed[j].y < 0) + { + fixed[j].h += fixed[j].y; + fixed[j].y = 0; + } + if ((fixed[j].y + fixed[j].h) > VRoot.h) + fixed[j].h = VRoot.h - fixed[j].y; + if ((fixed[j].w <= 0) || (fixed[j].h <= 0)) + continue; + + if (e->props.never_use_area) + fixed[j].p = 50; + else + fixed[j].p = EoGetLayer(e); + j++; + } + + blst = ButtonsGetList(&num); + if (blst) + { + fixed = Erealloc(fixed, sizeof(RectBox) * (num + j)); for (i = 0; i < num; i++) { - EWin *e = lst[i]; - - if (e == ewin || - e->state.iconified || e->props.ignorearrange || - EoGetLayer(e) == 0 || !EWinIsOnViewport(e, EoGetDesk(ewin))) + if (ButtonGetInfo(blst[i], &fixed[j], EoGetDesk(ewin))) continue; - fixed[j].data = e; - fixed[j].x = EoGetX(e); - fixed[j].y = EoGetY(e); - fixed[j].w = EoGetW(e); - fixed[j].h = EoGetH(e); if (fixed[j].x < 0) { fixed[j].w += fixed[j].x; @@ -882,75 +919,37 @@ if ((fixed[j].w <= 0) || (fixed[j].h <= 0)) continue; - if (e->props.never_use_area) - fixed[j].p = 50; + if (fixed[j].p) /* Sticky */ + fixed[j].p = 1; else - fixed[j].p = EoGetLayer(e); + fixed[j].p = 0; j++; } - - blst = ButtonsGetList(&num); - if (blst) - { - fixed = Erealloc(fixed, sizeof(RectBox) * (num + j)); - for (i = 0; i < num; i++) - { - if (ButtonGetInfo(blst[i], &fixed[j], EoGetDesk(ewin))) - continue; - - if (fixed[j].x < 0) - { - fixed[j].w += fixed[j].x; - fixed[j].x = 0; - } - if ((fixed[j].x + fixed[j].w) > VRoot.w) - fixed[j].w = VRoot.w - fixed[j].x; - if (fixed[j].y < 0) - { - fixed[j].h += fixed[j].y; - fixed[j].y = 0; - } - if ((fixed[j].y + fixed[j].h) > VRoot.h) - fixed[j].h = VRoot.h - fixed[j].y; - if ((fixed[j].w <= 0) || (fixed[j].h <= 0)) - continue; - - if (fixed[j].p) /* Sticky */ - fixed[j].p = 1; - else - fixed[j].p = 0; - j++; - } - Efree(blst); - } - ret = Emalloc(sizeof(RectBox) * (j + 1)); - newrect.data = ewin; - newrect.x = 0; - newrect.y = 0; - newrect.w = EoGetW(ewin); - newrect.h = EoGetH(ewin); - newrect.p = EoGetLayer(ewin); - ArrangeRects(fixed, j, &newrect, 1, ret, - 0, 0, VRoot.w, VRoot.h, ARRANGE_BY_SIZE, 1); - - for (i = 0; i < j + 1; i++) - { - if (ret[i].data == ewin) - { - *px = ret[i].x; - *py = ret[i].y; - break; - } - } - if (ret) - Efree(ret); - if (fixed) - Efree(fixed); - } - else - { - ArrangeEwinCenteredXY(ewin, px, py); + Efree(blst); } + ret = Emalloc(sizeof(RectBox) * (j + 1)); + newrect.data = ewin; + newrect.x = 0; + newrect.y = 0; + newrect.w = EoGetW(ewin); + newrect.h = EoGetH(ewin); + newrect.p = EoGetLayer(ewin); + ArrangeRects(fixed, j, &newrect, 1, ret, + 0, 0, VRoot.w, VRoot.h, ARRANGE_BY_SIZE, 1); + + for (i = 0; i < j + 1; i++) + { + if (ret[i].data == ewin) + { + *px = ret[i].x; + *py = ret[i].y; + break; + } + } + if (ret) + Efree(ret); + if (fixed) + Efree(fixed); } void @@ -1094,32 +1093,18 @@ for (i = 0; i < (j + k); i++) { - if (ret[i].data) - { - if (doslide) - { - ewin = (EWin *) ret[i].data; - if (ewin) - { - if ((EoGetX(ewin) != ret[i].x) - || (EoGetY(ewin) != ret[i].y)) - { - SlideEwinTo(ewin, EoGetX(ewin), EoGetY(ewin), - ret[i].x, ret[i].y, speed); - } - } - } - else - { - ewin = (EWin *) ret[i].data; - if (ewin) - { - if ((EoGetX(ewin) != ret[i].x) - || (EoGetY(ewin) != ret[i].y)) - EwinMove((EWin *) ret[i].data, ret[i].x, ret[i].y); - } - } - } + if (!ret[i].data) + continue; + + ewin = (EWin *) ret[i].data; + if ((EoGetX(ewin) == ret[i].x) && (EoGetY(ewin) == ret[i].y)) + continue; + + if (doslide) + SlideEwinTo(ewin, EoGetX(ewin), EoGetY(ewin), + ret[i].x, ret[i].y, speed); + else + EwinMove(ewin, ret[i].x, ret[i].y); } if (fixed) ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs