X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fmirrorblob.c;h=825eb66a6f419356e340cdbe86ece57e6b588976;hb=6afd6db0ae9396cd7ff897ade597cd5483f49b0e;hp=6daa372f71fd0d46fadf6f94560f8b707d9bf8f1;hpb=b81f521c5ad7022ac12db18ca8fcdd9fb063831e;p=xscreensaver diff --git a/hacks/glx/mirrorblob.c b/hacks/glx/mirrorblob.c index 6daa372f..825eb66a 100644 --- a/hacks/glx/mirrorblob.c +++ b/hacks/glx/mirrorblob.c @@ -44,9 +44,6 @@ "*chooseRandomImages: True \n" # define refresh_mirrorblob 0 -/* -# define mirrorblob_handle_event 0 -*/ # include "xlockmore.h" #else /* !STANDALONE */ # include "xlock.h" /* from the xlockmore distribution */ @@ -1123,11 +1120,13 @@ initialise_blob(mirrorblobstruct *gp, * * Return the magnitude of the given vector */ +#if 0 static inline double length (Vector3D u) { return sqrt (u.x * u.x + u.y * u.y + u.z * u.z); } +#endif /****************************************************************************** * @@ -1755,21 +1754,7 @@ mirrorblob_handle_event (ModeInfo * mi, XEvent * event) mirrorblobstruct *gp = &Mirrorblob[MI_SCREEN (mi)]; if (event->xany.type == ButtonPress && - event->xbutton.button == Button1) - { - gp->button_down = 1; - gltrackball_start (gp->trackball, event->xbutton.x, - event->xbutton.y, MI_WIDTH (mi), MI_HEIGHT (mi)); - return True; - } - else if (event->xany.type == ButtonRelease && - event->xbutton.button == Button1) - { - gp->button_down = 0; - return True; - } - else if (event->xany.type == ButtonPress && - event->xbutton.button == Button4) + event->xbutton.button == Button4) { zoom *= 1.1; return True; @@ -1781,12 +1766,19 @@ mirrorblob_handle_event (ModeInfo * mi, XEvent * event) zoom *= 0.9; return True; } - else if (event->xany.type == MotionNotify && gp->button_down) + else if (gltrackball_event_handler (event, gp->trackball, + MI_WIDTH (mi), MI_HEIGHT (mi), + &gp->button_down)) { - gltrackball_track (gp->trackball, event->xmotion.x, - event->xmotion.y, MI_WIDTH (mi), MI_HEIGHT (mi)); return True; } + else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) + { + gp->state_start_time = 0; + gp->state = HOLDING; + return True; + } + return False; } @@ -1821,7 +1813,7 @@ init_mirrorblob(ModeInfo * mi) { MI_CLEARWINDOW(mi); } - gp->trackball = gltrackball_init(); + gp->trackball = gltrackball_init(False); initialise_blob(gp, MI_WIDTH(mi), MI_HEIGHT(mi), BUMP_ARRAY_SIZE); gp->state = INITIALISING;