]> Dogcows Code - chaz/openbox/commitdiff
more restrictive to keep clients on screen in more cases
authorDana Jansens <danakj@orodu.net>
Sun, 6 May 2007 05:30:12 +0000 (05:30 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 6 May 2007 05:30:12 +0000 (05:30 +0000)
openbox/client.c

index 17d4c4a102bccd10216372b12272dc09a6fe743b..c18139fbde72bd8c918889e9beecbc90b326de73 100644 (file)
@@ -815,7 +815,7 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
     if (!rude) {
         Point oldtl, oldtr, oldbl, oldbr;
         Point newtl, newtr, newbl, newbr;
-        gboolean stationary;
+        gboolean stationary_l, stationary_r, stationary_t, stationary_b;
 
         POINT_SET(oldtl, self->frame->area.x, self->frame->area.y);
         POINT_SET(oldbr, self->frame->area.x + self->frame->area.width - 1,
@@ -829,20 +829,22 @@ gboolean client_find_onscreen(ObClient *self, gint *x, gint *y, gint w, gint h,
         POINT_SET(newbl, newtl.x, newbr.y);
 
         /* is it moving or just resizing from some corner? */
-        stationary = (POINT_EQUAL(oldtl, newtl) || POINT_EQUAL(oldtr, newtr) ||
-                      POINT_EQUAL(oldbl, newbl) || POINT_EQUAL(oldbr, newbr));
+        stationary_l = oldtl.x == oldtl.x;
+        stationary_r = oldtr.x == oldtr.x;
+        stationary_t = oldtl.y == oldtl.y;
+        stationary_b = oldbl.y == oldbl.y;
 
-        /* if left edge is growing */
-        if (stationary && newtl.x < oldtl.x)
+        /* if left edge is growing and didnt move right edge */
+        if (stationary_r && newtl.x < oldtl.x)
             rudel = TRUE;
-        /* if right edge is growing */
-        if (stationary && newtr.x > oldtr.x)
+        /* if right edge is growing and didnt move left edge */
+        if (stationary_l && newtr.x > oldtr.x)
             ruder = TRUE;
-        /* if top edge is growing */
-        if (stationary && newtl.y < oldtl.y)
+        /* if top edge is growing and didnt move bottom edge */
+        if (stationary_b && newtl.y < oldtl.y)
             rudet = TRUE;
-        /* if bottom edge is growing */
-        if (stationary && newbl.y > oldbl.y)
+        /* if bottom edge is growing and didnt move top edge */
+        if (stationary_t && newbl.y > oldbl.y)
             rudeb = TRUE;
     }
 
This page took 0.028541 seconds and 4 git commands to generate.