diff options
author | okan <okan> | 2015-11-11 14:22:01 +0000 |
---|---|---|
committer | okan <okan> | 2015-11-11 14:22:01 +0000 |
commit | 00bdd48b1d93b91946c7655ec8829060040aec22 (patch) | |
tree | 97a1ef802671b187c9566744ef04cacd9d3e65e1 /mousefunc.c | |
parent | 09565bc42362bb3a9fd24c75441e89c723114364 (diff) | |
download | cwm-00bdd48b1d93b91946c7655ec8829060040aec22.tar.gz cwm-00bdd48b1d93b91946c7655ec8829060040aec22.tar.xz cwm-00bdd48b1d93b91946c7655ec8829060040aec22.zip |
Partial revert of replacing screen_area() with region_find(); until a
fix for a regression is found; this bug has been around for a long time it seems, but this change exposed it. Likely need to track clients in to and out of regions.
Diffstat (limited to 'mousefunc.c')
-rw-r--r-- | mousefunc.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mousefunc.c b/mousefunc.c index b58c717..8f97897 100644 --- a/mousefunc.c +++ b/mousefunc.c @@ -123,7 +123,7 @@ mousefunc_client_move(struct client_ctx *cc, union arg *arg) XEvent ev; Time ltime = 0; struct screen_ctx *sc = cc->sc; - struct region_ctx *rc; + struct geom area; int px, py; client_raise(cc); @@ -149,14 +149,15 @@ mousefunc_client_move(struct client_ctx *cc, union arg *arg) cc->geom.x = ev.xmotion.x_root - px - cc->bwidth; cc->geom.y = ev.xmotion.y_root - py - cc->bwidth; - rc = region_find(sc, - ev.xmotion.x_root, ev.xmotion.y_root); + area = screen_area(sc, + cc->geom.x + cc->geom.w / 2, + cc->geom.y + cc->geom.h / 2, CWM_GAP); cc->geom.x += client_snapcalc(cc->geom.x, cc->geom.x + cc->geom.w + (cc->bwidth * 2), - rc->work.x, rc->work.x + rc->work.w, sc->snapdist); + area.x, area.x + area.w, sc->snapdist); cc->geom.y += client_snapcalc(cc->geom.y, cc->geom.y + cc->geom.h + (cc->bwidth * 2), - rc->work.y, rc->work.y + rc->work.h, sc->snapdist); + area.y, area.y + area.h, sc->snapdist); client_move(cc); break; |