ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-4.22.tar.gz
[xscreensaver] / hacks / glx / klein.c
index 2f3e7e74d9915c92512fb5bcf5c818927436a997..2329170475568a7104434f532e86feb35a5a5f10 100644 (file)
 #define DEF_RANDOM                             "False"
 #define DEF_SPEED                              "150"
 
-# define DEFAULTS                                      "*delay:                20000   \n"                     \
-                                                                       "*showFPS:      False   \n"                     \
-                                                                       "*wireframe:    False   \n"                     \
-                                                                       "*random:          " DEF_RANDOM     "\n"        \
-                                                                       "*speed:           " DEF_SPEED     "\n" \
-                                                                       "*spin:        " DEF_SPIN      "\n" \
-                                                                       "*wander:      " DEF_WANDER    "\n" \
+# define DEFAULTS                                      "*delay:                20000   \n" \
+                                                                       "*showFPS:      False   \n"
 
 # include "xlockmore.h"                /* from the xscreensaver distribution */
 #else  /* !STANDALONE */
@@ -300,14 +295,20 @@ klein_handle_event (ModeInfo *mi, XEvent *event)
 {
        kleinstruct *kp = &klein[MI_SCREEN(mi)];
 
-       if (event->xany.type == ButtonPress && event->xbutton.button & Button1) {
+       if (event->xany.type == ButtonPress && event->xbutton.button == Button1) {
                        kp->button_down_p = True;
                        gltrackball_start (kp->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) {
+       } else if (event->xany.type == ButtonRelease && event->xbutton.button == Button1) {
                        kp->button_down_p = False;
                        return True;
-       } else if (event->xany.type == MotionNotify && kp->button_down_p) {
+       } else if (event->xany.type == ButtonPress &&
+               (event->xbutton.button == Button4 ||
+                event->xbutton.button == Button5)) {
+      gltrackball_mousewheel (kp->trackball, event->xbutton.button, 10,
+                              !!event->xbutton.state);
+      return True;
+    } else if (event->xany.type == MotionNotify && kp->button_down_p) {
                        gltrackball_track (kp->trackball, event->xmotion.x, event->xmotion.y, MI_WIDTH (mi), MI_HEIGHT (mi));
                        return True;
        }