]> Dogcows Code - chaz/openbox/blobdiff - openbox/moveresize.c
Center the moveresize popup even when shaded.
[chaz/openbox] / openbox / moveresize.c
index 07b8e22b5d163837240ff41f51ca8d29a60f6743..333144bc10b818bfc0a44a68cb4be0bd48c82626 100644 (file)
@@ -108,44 +108,48 @@ static void popup_coords(ObClient *c, const gchar *format, gint a, gint b)
                        c->frame->area.y - ob_rr_theme->fbwidth);
     else if (config_resize_popup_pos == OB_RESIZE_POS_CENTER)
         popup_position(popup, CenterGravity,
-                       c->frame->area.x + c->frame->size.left +
-                       c->area.width / 2,
-                       c->frame->area.y + c->frame->size.top +
-                       c->area.height / 2);
+                       c->frame->area.x + c->frame->area.width / 2,
+                       c->frame->area.y + c->frame->area.height / 2);
     else /* Fixed */ {
         Rect *area = screen_physical_area_active();
         gint gravity, x, y;
 
-        x = config_resize_popup_x;
-        if (config_resize_popup_x_center) x = area->x + area->width/2;
-        else if (config_resize_popup_x_opposite) x = RECT_RIGHT(*area) - x;
-        else x = area->x + x;
+        x = config_resize_popup_fixed.x.pos;
+        if (config_resize_popup_fixed.x.center)
+            x = area->x + area->width/2;
+        else if (config_resize_popup_fixed.x.opposite)
+            x = RECT_RIGHT(*area) - x;
+        else
+            x = area->x + x;
 
-        y = config_resize_popup_y;
-        if (config_resize_popup_y_center) y = area->y + area->height/2;
-        else if (config_resize_popup_y_opposite) y = RECT_BOTTOM(*area) - y;
-        else y = area->y + y;
+        y = config_resize_popup_fixed.y.pos;
+        if (config_resize_popup_fixed.y.center)
+            y = area->y + area->height/2;
+        else if (config_resize_popup_fixed.y.opposite)
+            y = RECT_RIGHT(*area) - y;
+        else
+            y = area->y + y;
 
-        if (config_resize_popup_x_center) {
-            if (config_resize_popup_y_center)
+        if (config_resize_popup_fixed.x.center) {
+            if (config_resize_popup_fixed.y.center)
                 gravity = CenterGravity;
-            else if (config_resize_popup_y_opposite)
+            else if (config_resize_popup_fixed.y.opposite)
                 gravity = SouthGravity;
             else
                 gravity = NorthGravity;
         }
-        else if (config_resize_popup_x_opposite) {
-            if (config_resize_popup_y_center)
+        else if (config_resize_popup_fixed.x.opposite) {
+            if (config_resize_popup_fixed.y.center)
                 gravity = EastGravity;
-            else if (config_resize_popup_y_opposite)
+            else if (config_resize_popup_fixed.y.opposite)
                 gravity = SouthEastGravity;
             else
                 gravity = NorthEastGravity;
         }
         else {
-            if (config_resize_popup_y_center)
+            if (config_resize_popup_fixed.y.center)
                 gravity = WestGravity;
-            else if (config_resize_popup_y_opposite)
+            else if (config_resize_popup_fixed.y.opposite)
                 gravity = SouthWestGravity;
             else
                 gravity = NorthWestGravity;
@@ -246,7 +250,8 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
 
 #ifdef SYNC
     if (config_resize_redraw && !moving && extensions_sync &&
-        moveresize_client->sync_request && moveresize_client->sync_counter)
+        moveresize_client->sync_request && moveresize_client->sync_counter &&
+        !moveresize_client->not_responding)
     {
         /* Initialize values for the resize syncing, and create an alarm for
            the client's xsync counter */
@@ -341,7 +346,6 @@ static void do_move(gboolean keyboard, gint keydist)
                      moveresize_client->frame->area.y);
 }
 
-
 static void do_resize(void)
 {
     gint x, y, w, h, lw, lh;
@@ -361,7 +365,8 @@ static void do_resize(void)
 
 #ifdef SYNC
     if (config_resize_redraw && extensions_sync &&
-        moveresize_client->sync_request && moveresize_client->sync_counter)
+        moveresize_client->sync_request && moveresize_client->sync_counter &&
+        !moveresize_client->not_responding)
     {
         XEvent ce;
         XSyncValue val;
This page took 0.023006 seconds and 4 git commands to generate.