X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmoveresize.c;h=4b1ee6ea0db8995a30bdce42d5687ae02d456a79;hb=a4a0cb78294bb1809b836ea1e86e9d7294bb2929;hp=ddaa27621174d399c4fa44bafc70f273a30d85c8;hpb=7c7868f47d42796a236c9a1813bed5fe9f0d4f41;p=chaz%2Fopenbox diff --git a/openbox/moveresize.c b/openbox/moveresize.c index ddaa2762..4b1ee6ea 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,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 */