resize fixings
authorDana Jansens <danakj@orodu.net>
Tue, 10 Jul 2007 23:06:11 +0000 (23:06 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 10 Jul 2007 23:06:11 +0000 (23:06 +0000)
openbox/moveresize.c

index b4ebde5..29f82cf 100644 (file)
@@ -374,17 +374,17 @@ static gboolean sync_timeout_func(gpointer data)
 static void calc_resize(gboolean keyboard, gint keydist, gint *dw, gint *dh,
                         ObCorner cor)
 {
-    gint resist, ow, oh, nw, nh;
+    gint resist, x, y, lw, lh, ow, oh, nw, nh;
 
+    ow = cur_w;
+    oh = cur_h;
     /* resist_size_* needs the frame size */
-    ow = cur_w +
+    nw = ow + *dw +
         moveresize_client->frame->size.left +
         moveresize_client->frame->size.right;
-    oh = cur_h +
+    nh = oh + *dh +
         moveresize_client->frame->size.top +
         moveresize_client->frame->size.bottom;
-    nw = ow + *dw;
-    nh = oh + *dh;
 
     if (keyboard) resist = keydist - 1; /* resist for one key press */
     else resist = config_resist_win;
@@ -392,6 +392,17 @@ static void calc_resize(gboolean keyboard, gint keydist, gint *dw, gint *dh,
     if (!keyboard) resist = config_resist_edge;
     resist_size_monitors(moveresize_client, resist, &nw, &nh, cor);
 
+    nw -= moveresize_client->frame->size.left +
+        moveresize_client->frame->size.right;
+    nh -= moveresize_client->frame->size.top +
+        moveresize_client->frame->size.bottom;
+
+    /* see its actual size */
+    x = 0;
+    y = 0;
+    client_try_configure(moveresize_client, &x, &y, &nw, &nh, &lw, &lh, TRUE);
+
+
     *dw = nw - ow;
     *dh = nh - oh;
 }
@@ -742,6 +753,7 @@ gboolean moveresize_event(XEvent *e)
 
             dw -= cur_w - start_cw;
             dh -= cur_h - start_ch;
+            ob_debug("dw %d\n", dw);
 
             calc_resize(FALSE, 0, &dw, &dh, lockcorner);
             cur_w += dw;