From bb56bf4c4b97d0141792cc99a8a31531424476c5 Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 2 May 2013 19:30:10 +0000 Subject: only redraw the name/size box when the client resizes, not every time there's movement; should slightly help with resize syncs. --- mousefunc.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'mousefunc.c') diff --git a/mousefunc.c b/mousefunc.c index be1d24a..5f01df2 100644 --- a/mousefunc.c +++ b/mousefunc.c @@ -31,14 +31,12 @@ #include "calmwm.h" -static int mousefunc_sweep_calc(struct client_ctx *, int, int, int, int); +static void mousefunc_sweep_calc(struct client_ctx *, int, int, int, int); static void mousefunc_sweep_draw(struct client_ctx *); -static int +static void mousefunc_sweep_calc(struct client_ctx *cc, int x, int y, int mx, int my) { - int width = cc->geom.w, height = cc->geom.h; - cc->geom.w = abs(x - mx) - cc->bwidth; cc->geom.h = abs(y - my) - cc->bwidth; @@ -46,8 +44,6 @@ mousefunc_sweep_calc(struct client_ctx *cc, int x, int y, int mx, int my) cc->geom.x = x <= mx ? x : x - cc->geom.w; cc->geom.y = y <= my ? y : y - cc->geom.h; - - return (width != cc->geom.w || height != cc->geom.h); } static void @@ -103,15 +99,14 @@ mousefunc_window_resize(struct client_ctx *cc, void *arg) client_draw_border(cc); break; case MotionNotify: - if (mousefunc_sweep_calc(cc, x, y, - ev.xmotion.x_root, ev.xmotion.y_root)) - /* Recompute window output */ - mousefunc_sweep_draw(cc); + mousefunc_sweep_calc(cc, x, y, + ev.xmotion.x_root, ev.xmotion.y_root); /* don't resize more than 60 times / second */ if ((ev.xmotion.time - ltime) > (1000 / 60)) { ltime = ev.xmotion.time; client_resize(cc, 1); + mousefunc_sweep_draw(cc); } break; case ButtonRelease: -- cgit 1.4.1