fix window gravity when there is a border width
Dana Jansens danakj@orodu.net
2 files changed,
11 insertions(+),
11 deletions(-)
M
openbox/frame.c
→
openbox/frame.c
@@ -1343,13 +1343,13 @@ case NorthEastGravity:
case SouthEastGravity: case EastGravity: /* the right side of the client will be the right side of the frame */ - *x -= self->size.right + self->size.left; + *x -= self->size.right + self->size.left - self->client->border_width*2; break; case ForgetGravity: case StaticGravity: /* the client's position won't move */ - *x -= self->size.left; + *x -= self->size.left - self->client->border_width; break; }@@ -1372,13 +1372,13 @@ case SouthWestGravity:
case SouthEastGravity: case SouthGravity: /* the bottom of the client will be the bottom of the frame */ - *y -= self->size.bottom + self->size.top; + *y -= self->size.bottom + self->size.top - self->client->border_width*2; break; case ForgetGravity: case StaticGravity: /* the client's position won't move */ - *y -= self->size.top; + *y -= self->size.top - self->client->border_width; break; } }@@ -1402,12 +1402,12 @@ case NorthEastGravity:
case EastGravity: case SouthEastGravity: /* the right side of the client will be the right side of the frame */ - *x += self->size.right + self->size.left; + *x += self->size.right + self->size.left - self->client->border_width*2; break; case StaticGravity: case ForgetGravity: /* the client's position won't move */ - *x += self->size.left; + *x += self->size.left - self->client->border_width; break; }@@ -1428,12 +1428,12 @@ case SouthWestGravity:
case SouthGravity: case SouthEastGravity: /* the bottom of the client will be the bottom of the frame */ - *y += self->size.bottom + self->size.top; + *y += self->size.bottom + self->size.top - self->client->border_width*2; break; case StaticGravity: case ForgetGravity: /* the client's position won't move */ - *y += self->size.top; + *y += self->size.top - self->client->border_width; break; } }
M
tests/grav.c
→
tests/grav.c
@@ -24,7 +24,7 @@ int main () {
Display *display; Window win; XEvent report; - int x=10,y=10,h=100,w=400; + int x=10,y=10,h=100,w=400,b=10; XSizeHints *hints; display = XOpenDisplay(NULL);@@ -35,7 +35,7 @@ return 0;
} win = XCreateWindow(display, RootWindow(display, 0), - x, y, w, h, 10, CopyFromParent, CopyFromParent, + x, y, w, h, b, CopyFromParent, CopyFromParent, CopyFromParent, 0, NULL); hints = XAllocSizeHints();@@ -49,7 +49,7 @@
XMapWindow(display, win); XFlush(display); - XMoveResizeWindow(display, win, 1172-600, 668-150, 600, 150); + XMoveResizeWindow(display, win, 1172-600-b*2, 668-150-b*2, 600, 150); XFlush(display); sleep(1); XResizeWindow(display, win, 900, 275);