X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fcrackberg.c;h=85c6294090da6a632c0748da872cba5d48084a65;hp=64e53028c6d04ca70bc211afb486fa897d5ddbe0;hb=d5186197bc394e10a4402f7f6d23fbb14103bc50;hpb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e diff --git a/hacks/glx/crackberg.c b/hacks/glx/crackberg.c index 64e53028..85c62940 100644 --- a/hacks/glx/crackberg.c +++ b/hacks/glx/crackberg.c @@ -1335,6 +1335,19 @@ ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev) if (dy > 0 && dy > dx) dx = 0; if (dy < 0 && dy < dx) dx = 0; + { + int rot = current_device_rotation(); + int swap; + while (rot <= -180) rot += 360; + while (rot > 180) rot -= 360; + if (rot > 135 || rot < -135) /* 180 */ + dx = -dx, dy = -dy; + else if (rot > 45) /* 90 */ + swap = dx, dx = -dy, dy = swap; + else if (rot < -45) /* 270 */ + swap = dx, dx = dy, dy = -swap; + } + if (dx > 0) cberg->motion_state |= MOTION_LEFT; else if (dx < 0) cberg->motion_state |= MOTION_RIGHT; else if (dy > 0) cberg->motion_state |= MOTION_FORW;