wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit a3a6dd6c9f9a6aedb40095098cc197c54c078bf2
parent 7b6172551003a61b1382502606ffd11b845442a8
Author: Kris Maglione <jg@suckless.org>
Date:   Fri,  2 Oct 2009 02:48:25 -0400

Fix scrolling across Xinerama screens via keyboard. Fixes issue #126.

Diffstat:
cmd/wmii/screen.c | 16++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/cmd/wmii/screen.c b/cmd/wmii/screen.c @@ -81,16 +81,13 @@ findscreen(Rectangle rect, int direction) { static Rectangle leastthing(Rectangle rect, int direction, Vector_ptr *vec, Rectangle (*key)(void*)) { - void *p; Rectangle r; - Point pt; int i, best, d; SET(d); SET(best); for(i=0; i < vec->n; i++) { - p = vec->ary[i]; - r = key(p); + r = key(vec->ary[i]); switch(direction) { case South: d = r.min.y; break; case North: d = -r.max.y; break; @@ -100,14 +97,13 @@ leastthing(Rectangle rect, int direction, Vector_ptr *vec, Rectangle (*key)(void if(i == 0 || d < best) best = d; } - pt = rect.min; switch(direction) { - case South: pt.y = best - Dy(rect); break; - case North: pt.y = -best + Dy(rect); break; - case East: pt.x = best - Dy(rect); break; - case West: pt.x = -best + Dy(rect); break; + case South: rect.min.y = rect.max.y = best; break; + case North: rect.min.y = rect.max.y = -best; break; + case East: rect.min.x = rect.max.x = best; break; + case West: rect.min.x = rect.max.x = -best; break; } - return rectsetorigin(rect, pt); + return rect; } void*