package xli
tag 179268 + patch
thanks

The attached patch make xli handle the arrow keys to move the image
in the specified direction.

Hochachtungsvoll,
        Bernhard R. Link
diff -r -u -N xli-1.17.0.old/window.c xli-1.17.0/window.c
--- xli-1.17.0.old/window.c     2000-02-09 10:23:35.000000000 +0100
+++ xli-1.17.0/window.c 2007-06-30 14:03:45.000000000 +0200
@@ -796,8 +796,34 @@
                                XComposeStatus status;
                                char ret;
                                Cursor cursor;
+                               int num;
 
-                               if (XLookupString(&event.key, buf, 128, &ks, 
&status) != 1)
+                               num = XLookupString(&event.key, buf, 128, &ks, 
&status);
+                               if( num != 1 && ((image->width > winwidth) || 
(image->height > winheight))) {
+                                       switch (ks) {
+                                       case XK_Left:
+                                       case XK_KP_Left:
+                                               pixx += winwidth/10+1;
+                                               placeImage(disp, image->width, 
image->height, winwidth, winheight, &pixx, &pixy);
+                                               break;
+                                       case XK_Right:
+                                       case XK_KP_Right:
+                                               pixx -= winwidth/10+1;
+                                               placeImage(disp, image->width, 
image->height, winwidth, winheight, &pixx, &pixy);
+                                               break;
+                                       case XK_Up:
+                                       case XK_KP_Up:
+                                               pixy += winheight/10+1;
+                                               placeImage(disp, image->width, 
image->height, winwidth, winheight, &pixx, &pixy);
+                                               break;
+                                       case XK_Down:
+                                       case XK_KP_Down:
+                                               pixy -= winheight/10+1;
+                                               placeImage(disp, image->width, 
image->height, winwidth, winheight, &pixx, &pixy);
+                                               break;
+                                       }
+                               }
+                               if (num != 1)
                                        break;
                                ret = buf[0];
                                if (isupper(ret))

Reply via email to