aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-03 19:59:32 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-06-03 19:59:32 +0000
commit496988052f0ac6c21bfeb10879f61931a647d759 (patch)
tree372b193b5599e8cde12c36ed17de86e51fd3a965 /main.c
parentad3850590fb4cb0ca3e9ffdafb8f6c8b95a0e2b6 (diff)
downloaddzen-496988052f0ac6c21bfeb10879f61931a647d759.tar.gz
dzen-496988052f0ac6c21bfeb10879f61931a647d759.zip
fixed xinerama geometry checking, thanks david
git-svn-id: http://dzen.googlecode.com/svn/trunk@61 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'main.c')
-rw-r--r--main.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/main.c b/main.c
index fe1e52d..3caae2d 100644
--- a/main.c
+++ b/main.c
@@ -169,7 +169,10 @@ x_draw_body(void) {
static void
x_check_geometry(XRectangle si) {
- if(dzen.title_win.x > si.width)
+ dzen.title_win.x += si.x;
+ dzen.title_win.y += si.y;
+
+ if(dzen.title_win.x > si.x + si.width)
dzen.title_win.x = si.x;
if (dzen.title_win.x < si.x)
dzen.title_win.x = si.x;
@@ -179,26 +182,24 @@ x_check_geometry(XRectangle si) {
if((dzen.title_win.x + dzen.title_win.width) > (si.x + si.width))
dzen.title_win.width = si.width - (dzen.title_win.x - si.x);
-
if(!dzen.slave_win.width) {
dzen.slave_win.x = si.x;
dzen.slave_win.width = si.width;
}
if( dzen.title_win.width == dzen.slave_win.width) {
dzen.slave_win.x = dzen.title_win.x;
- dzen.slave_win.width = dzen.title_win.width;
}
if(dzen.slave_win.width != si.width) {
dzen.slave_win.x = dzen.title_win.x + (dzen.title_win.width - dzen.slave_win.width)/2;
if(dzen.slave_win.x < si.x)
dzen.slave_win.x = si.x;
- if(dzen.slave_win.width > si.width)
- dzen.slave_win.width = si.width;
- if(dzen.slave_win.x + dzen.slave_win.width > si.width)
+ if(dzen.slave_win.x + dzen.slave_win.width > si.x + si.width)
dzen.slave_win.x = si.x + (si.width - dzen.slave_win.width);
}
dzen.line_height = dzen.font.height + 2;
- dzen.title_win.y = si.y + ((dzen.title_win.y + dzen.line_height) > si.height ? 0 : dzen.title_win.y);
+
+ if (dzen.title_win.y + dzen.line_height > si.y + si.height)
+ dzen.title_win.y = 0;
}
static void
@@ -276,7 +277,7 @@ x_create_windows(void) {
dzen.slave_win.issticky = False;
dzen.slave_win.y = dzen.title_win.y + dzen.line_height;
- if(dzen.title_win.y + dzen.line_height*dzen.slave_win.max_lines > si.height)
+ if(dzen.title_win.y + dzen.line_height*dzen.slave_win.max_lines > si.y + si.height)
dzen.slave_win.y = (dzen.title_win.y - dzen.line_height) - dzen.line_height*(dzen.slave_win.max_lines) + dzen.line_height;
dzen.slave_win.win = XCreateWindow(dzen.dpy, root,