fix window gravity when there is a border width
This commit is contained in:
parent
8e19e99ac8
commit
01a7a9edb7
2 changed files with 11 additions and 11 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue