summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2009-01-08 14:11:04 +0100
committerDanny Baumann <dannybaumann@web.de>2009-01-10 10:53:03 +0100
commitc15531e451cc976118ded7dd0ce45460f33b0520 (patch)
tree33e03a0f703e9b13f189d885ac1b86dd96e76e72
parent8efce6eb377a8c93677ac21a85427f48c22fe6bc (diff)
Stick strictly to the spec when calculation strut sizes.
-rw-r--r--src/window.c55
1 files changed, 18 insertions, 37 deletions
diff --git a/src/window.c b/src/window.c
index 3bc70027..876e0719 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1756,8 +1756,6 @@ updateWindowStruts (CompWindow *w)
Bool hasOld, hasNew;
CompStruts old, new;
-#define MIN_EMPTY 76
-
if (w->struts)
{
hasOld = TRUE;
@@ -1805,34 +1803,25 @@ updateWindowStruts (CompWindow *w)
if (n == 12)
{
- int gap;
-
hasNew = TRUE;
- gap = w->screen->width - struts[0] - struts[1];
- gap -= MIN_EMPTY;
-
- new.left.width = (int) struts[0] + MIN (0, gap / 2);
- new.right.width = (int) struts[1] + MIN (0, gap / 2);
-
- gap = w->screen->height - struts[2] - struts[3];
- gap -= MIN_EMPTY;
-
- new.top.height = (int) struts[2] + MIN (0, gap / 2);
- new.bottom.height = (int) struts[3] + MIN (0, gap / 2);
-
- new.right.x = w->screen->width - new.right.width;
- new.bottom.y = w->screen->height - new.bottom.height;
-
new.left.y = struts[4];
+ new.left.width = struts[0];
new.left.height = struts[5] - new.left.y + 1;
+
+ new.right.width = struts[1];
+ new.right.x = w->screen->width - new.right.width;
new.right.y = struts[6];
new.right.height = struts[7] - new.right.y + 1;
new.top.x = struts[8];
new.top.width = struts[9] - new.top.x + 1;
- new.bottom.x = struts[10];
- new.bottom.width = struts[11] - new.bottom.x + 1;
+ new.top.height = struts[2];
+
+ new.bottom.x = struts[10];
+ new.bottom.width = struts[11] - new.bottom.x + 1;
+ new.bottom.height = struts[3];
+ new.bottom.y = w->screen->height - new.bottom.height;
}
XFree (data);
@@ -1851,27 +1840,19 @@ updateWindowStruts (CompWindow *w)
if (n == 4)
{
- int gap;
-
hasNew = TRUE;
- gap = w->screen->width - struts[0] - struts[1];
- gap -= MIN_EMPTY;
-
- new.left.width = (int) struts[0] + MIN (0, gap / 2);
- new.right.width = (int) struts[1] + MIN (0, gap / 2);
-
- gap = w->screen->height - struts[2] - struts[3];
- gap -= MIN_EMPTY;
+ new.left.x = 0;
+ new.left.width = struts[0];
- new.top.height = (int) struts[2] + MIN (0, gap / 2);
- new.bottom.height = (int) struts[3] + MIN (0, gap / 2);
+ new.right.width = struts[1];
+ new.right.x = w->screen->width - new.right.width;
- new.left.x = 0;
- new.right.x = w->screen->width - new.right.width;
+ new.top.y = 0;
+ new.top.height = struts[2];
- new.top.y = 0;
- new.bottom.y = w->screen->height - new.bottom.height;
+ new.bottom.height = struts[3];
+ new.bottom.y = w->screen->height - new.bottom.height;
}
XFree (data);