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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs