http://ftp.ksu.edu.tw/FTP/FreeBSD/distfiles/xscreensaver-4.20.tar.gz
[xscreensaver] / hacks / glx / antinspect.c
index 0d50467146e400b79a98d4e2ac5ea322bf7eb7f7..3f3dc9ebcd5feff65b0f07b43d3a382c58e17593 100644 (file)
 static int shadows;
 
 static XrmOptionDescRec opts[] = {
-  {(char *) "-shadows", 
-   (char *) ".antinspect.shadows", XrmoptionNoArg, (caddr_t) "on"},
-
-  {(char *) "+shadows", 
-   (char *) ".antinspect.shadows", XrmoptionNoArg, (caddr_t) "off"}
+  {"-shadows", ".antinspect.shadows", XrmoptionNoArg, "on"},
+  {"+shadows", ".antinspect.shadows", XrmoptionNoArg, "off"}
 };
 
 static argtype vars[] = {
-  {(caddr_t *) &shadows, 
-   (char *) "shadows", (char *) "Shadows", (char *) DEF_SHADOWS, t_Bool}
+  {&shadows, "shadows", "Shadows", DEF_SHADOWS, t_Bool}
 };
 
 static OptionStruct desc[] = {
-  {(char *) "-/+shadows", 
-   (char *) "turn on/off ant shadows"}
+  {"-/+shadows", "turn on/off ant shadows"}
 };
 
 ModeSpecOpt antinspect_opts = {sizeof opts / sizeof opts[0], 
@@ -560,7 +555,7 @@ void release_antinspect(ModeInfo * mi) {
 Bool antinspect_handle_event (ModeInfo *mi, XEvent *event) {
   antinspectstruct *mp = &antinspect[MI_SCREEN(mi)];
   
-  if(event->xany.type == ButtonPress && event->xbutton.button & Button1) {
+  if(event->xany.type == ButtonPress && event->xbutton.button == Button1) {
        mp->button_down_p = True;
        gltrackball_start(mp->trackball,
                                          event->xbutton.x, event->xbutton.y,
@@ -568,10 +563,18 @@ Bool antinspect_handle_event (ModeInfo *mi, XEvent *event) {
        return True;
   }
   else if(event->xany.type == ButtonRelease && 
-                 event->xbutton.button & Button1) {
+                 event->xbutton.button == Button1) {
        mp->button_down_p = False;
        return True;
   }
+  else if (event->xany.type == ButtonPress &&
+           (event->xbutton.button == Button4 ||
+            event->xbutton.button == Button5))
+    {
+      gltrackball_mousewheel (mp->trackball, event->xbutton.button, 5,
+                              !event->xbutton.state);
+      return True;
+    }
   else if(event->xany.type == MotionNotify && mp->button_down_p) {
        gltrackball_track (mp->trackball,
                                           event->xmotion.x, event->xmotion.y,