X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmoveresize.c;h=287d4ec0337fc6e63809e6173410daa0d251312d;hb=b1f5555218ecaa3827450125dc47b4bf0d404ee4;hp=ddaa27621174d399c4fa44bafc70f273a30d85c8;hpb=7c7868f47d42796a236c9a1813bed5fe9f0d4f41;p=chaz%2Fopenbox diff --git a/openbox/moveresize.c b/openbox/moveresize.c index ddaa2762..287d4ec0 100644 --- a/openbox/moveresize.c +++ b/openbox/moveresize.c @@ -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,14 +53,15 @@ 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 */ gcv.function = GXxor; - gcv.line_width = theme_bwidth; + gcv.line_width = ob_rr_theme->bwidth; gcv.foreground = (WhitePixel(ob_display, ob_screen) ^ BlackPixel(ob_display, ob_screen)); opaque_gc = XCreateGC(ob_display, opaque_window.win, @@ -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 */