]> Dogcows Code - chaz/openbox/blobdiff - openbox/moveresize.c
add suppot for showing pixmap masks in menus where the rgba icons go too
[chaz/openbox] / openbox / moveresize.c
index 981a9df25dc30fd73afb4f2919c1776d4756cfec..8f92f71f958f34af73564ba2a84e2edddbf5d502 100644 (file)
@@ -4,7 +4,6 @@
 #include "prop.h"
 #include "client.h"
 #include "frame.h"
-#include "dispatch.h"
 #include "openbox.h"
 #include "resist.h"
 #include "popup.h"
@@ -31,6 +30,12 @@ static Popup *popup = NULL;
 #define POPUP_X (10)
 #define POPUP_Y (10)
 
+static void client_dest(ObClient *c)
+{
+    if (moveresize_client == c)
+        moveresize_end(TRUE);    
+}
+
 void moveresize_startup()
 {
     XSetWindowAttributes attrib;
@@ -39,10 +44,14 @@ void moveresize_startup()
     popup_size_to_string(popup, "W:  0000  W:  0000");
 
     attrib.save_under = True;
+
+    client_add_destructor(client_dest);
 }
 
 void moveresize_shutdown()
 {
+    client_remove_destructor(client_dest);
+
     popup_free(popup);
     popup = NULL;
 }
@@ -157,8 +166,6 @@ static void do_move(gboolean resist)
     if (resist)
         resist_move(moveresize_client, &cur_x, &cur_y);
 
-    dispatch_move(moveresize_client, &cur_x, &cur_y);
-
     /* get where the client should be */
     frame_frame_gravity(moveresize_client->frame, &cur_x, &cur_y);
     client_configure(moveresize_client, OB_CORNER_TOPLEFT, cur_x, cur_y,
@@ -174,21 +181,20 @@ static void do_move(gboolean resist)
 
 static void do_resize(gboolean resist)
 {
-    /* dispatch_resize needs the frame size */
-    cur_x += moveresize_client->frame->size.left +
-        moveresize_client->frame->size.right;
-    cur_y += moveresize_client->frame->size.top +
-        moveresize_client->frame->size.bottom;
+    if (resist) {
+        /* resist_size needs the frame size */
+        cur_x += moveresize_client->frame->size.left +
+            moveresize_client->frame->size.right;
+        cur_y += moveresize_client->frame->size.top +
+            moveresize_client->frame->size.bottom;
 
-    if (resist)
         resist_size(moveresize_client, &cur_x, &cur_y, lockcorner);
 
-    dispatch_resize(moveresize_client, &cur_x, &cur_y, lockcorner);
-
-    cur_x -= moveresize_client->frame->size.left +
-        moveresize_client->frame->size.right;
-    cur_y -= moveresize_client->frame->size.top +
-        moveresize_client->frame->size.bottom;
+        cur_x -= moveresize_client->frame->size.left +
+            moveresize_client->frame->size.right;
+        cur_y -= moveresize_client->frame->size.top +
+            moveresize_client->frame->size.bottom;
+    }
     
     client_configure(moveresize_client, lockcorner, 
                      moveresize_client->area.x, moveresize_client->area.y,
This page took 0.022932 seconds and 4 git commands to generate.