]> Dogcows Code - chaz/openbox/commitdiff
fix window gravity when there is a border width
authorDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 16:33:59 +0000 (16:33 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 27 May 2007 16:33:59 +0000 (16:33 +0000)
openbox/frame.c
tests/grav.c

index 780bc23d1302fe4caa0b65c7e89c9c87f8e01123..b6b6ac9322a9e4d4a1b057136448c65e04238e3f 100644 (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;
     }
 }
index a8dcdc31669515a48868e145ab3832c4d9446cfb..5ce3cfb7ed4b08642ef4d4be8399bebb3723f51a 100644 (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);
This page took 0.028765 seconds and 4 git commands to generate.