mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
only redraw the name/size box when the client resizes, not every time
there's movement; should slightly help with resize syncs.
This commit is contained in:
parent
5acf6c147f
commit
bb56bf4c4b
15
mousefunc.c
15
mousefunc.c
@ -31,14 +31,12 @@
|
|||||||
|
|
||||||
#include "calmwm.h"
|
#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 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)
|
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.w = abs(x - mx) - cc->bwidth;
|
||||||
cc->geom.h = abs(y - my) - 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.x = x <= mx ? x : x - cc->geom.w;
|
||||||
cc->geom.y = y <= my ? y : y - cc->geom.h;
|
cc->geom.y = y <= my ? y : y - cc->geom.h;
|
||||||
|
|
||||||
return (width != cc->geom.w || height != cc->geom.h);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -103,15 +99,14 @@ mousefunc_window_resize(struct client_ctx *cc, void *arg)
|
|||||||
client_draw_border(cc);
|
client_draw_border(cc);
|
||||||
break;
|
break;
|
||||||
case MotionNotify:
|
case MotionNotify:
|
||||||
if (mousefunc_sweep_calc(cc, x, y,
|
mousefunc_sweep_calc(cc, x, y,
|
||||||
ev.xmotion.x_root, ev.xmotion.y_root))
|
ev.xmotion.x_root, ev.xmotion.y_root);
|
||||||
/* Recompute window output */
|
|
||||||
mousefunc_sweep_draw(cc);
|
|
||||||
|
|
||||||
/* don't resize more than 60 times / second */
|
/* don't resize more than 60 times / second */
|
||||||
if ((ev.xmotion.time - ltime) > (1000 / 60)) {
|
if ((ev.xmotion.time - ltime) > (1000 / 60)) {
|
||||||
ltime = ev.xmotion.time;
|
ltime = ev.xmotion.time;
|
||||||
client_resize(cc, 1);
|
client_resize(cc, 1);
|
||||||
|
mousefunc_sweep_draw(cc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
|
Loading…
Reference in New Issue
Block a user