]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.c
fix window gravity when there is a border width
[chaz/openbox] / openbox / frame.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;
     }
 }
This page took 0.025661 seconds and 4 git commands to generate.