fix window gravity when there is a border width

This commit is contained in:
Dana Jansens 2007-05-27 16:33:59 +00:00
parent 8e19e99ac8
commit 01a7a9edb7
2 changed files with 11 additions and 11 deletions

View file

@ -1343,13 +1343,13 @@ void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h)
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 @@ void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h)
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 @@ void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h)
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 @@ void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h)
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;
}
}

View file

@ -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 @@ int main () {
}
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 @@ int main () {
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);