]> Dogcows Code - chaz/openbox/blobdiff - openbox/moveresize.c
fixed to accomodate the changes to the render/ API.
[chaz/openbox] / openbox / moveresize.c
index ddaa27621174d399c4fa44bafc70f273a30d85c8..4b1ee6ea0db8995a30bdce42d5687ae02d456a79 100644 (file)
@@ -6,6 +6,7 @@
 #include "dispatch.h"
 #include "openbox.h"
 #include "popup.h"
+#include "config.h"
 #include "render/render.h"
 #include "render/theme.h"
 
@@ -34,9 +35,6 @@ static gboolean first_draw = FALSE;
 #define POPUP_X (10)
 #define POPUP_Y (10)
 
-gboolean config_opaque_move = FALSE;
-gboolean config_opaque_resize = FALSE;
-
 void moveresize_startup()
 {
     XSetWindowAttributes attrib;
@@ -55,9 +53,10 @@ void moveresize_startup()
 
     attrib.save_under = True;
     opaque_window.win = XCreateWindow(ob_display, ob_root, 0, 0, 1, 1, 0,
-                                      render_depth, InputOutput, render_visual,
+                                      RrDepth(ob_rr_inst), InputOutput,
+                                      RrVisual(ob_rr_inst),
                                       CWSaveUnder, &attrib);
-    stacking_add(&opaque_window);
+    stacking_add(INTERNAL_AS_WINDOW(&opaque_window));
     stacking_raise(INTERNAL_AS_WINDOW(&opaque_window));
 
     /* a GC to invert stuff */
@@ -203,17 +202,22 @@ static void do_move()
     client_configure(moveresize_client, Corner_TopLeft, cur_x, cur_y,
                      start_cw, start_ch, TRUE, FALSE);
     /* draw the new one */
-    if (!config_opaque_move)
-        XDrawRectangle(ob_display, opaque_window.win, opaque_gc,
-                       moveresize_client->frame->area.x,
-                       moveresize_client->frame->area.y,
-                       moveresize_client->frame->area.width - 1,
-                       moveresize_client->frame->area.height - 1);
-    /* erase the old one */
-    if (!config_opaque_move && !first_draw)
-        XDrawRectangle(ob_display, opaque_window.win, opaque_gc,
-                       oldx, oldy, oldw - 1, oldh - 1);
-    first_draw = FALSE;
+    if (moveresize_client->frame->area.x != oldx ||
+        moveresize_client->frame->area.y != oldy ||
+        moveresize_client->frame->area.width != oldw ||
+        moveresize_client->frame->area.height != oldh) {
+        if (!config_opaque_move)
+            XDrawRectangle(ob_display, opaque_window.win, opaque_gc,
+                           moveresize_client->frame->area.x,
+                           moveresize_client->frame->area.y,
+                           moveresize_client->frame->area.width - 1,
+                           moveresize_client->frame->area.height - 1);
+        /* erase the old one */
+        if (!config_opaque_move && !first_draw)
+            XDrawRectangle(ob_display, opaque_window.win, opaque_gc,
+                           oldx, oldy, oldw - 1, oldh - 1);
+        first_draw = FALSE;
+    }
 
     /* this would be better with a fixed width font ... XXX can do it better
        if there are 2 text boxes */
This page took 0.027352 seconds and 4 git commands to generate.