Index: trunk/Ohana/src/kii/event/InterpretKeys.c
===================================================================
--- trunk/Ohana/src/kii/event/InterpretKeys.c	(revision 2891)
+++ trunk/Ohana/src/kii/event/InterpretKeys.c	(revision 6674)
@@ -3,21 +3,51 @@
 int InterpretKeys (Graphic *graphic, Layout *layout, XEvent *event) {
 
+  double X, Y;
   int    status;
   char   string[10];
   KeySym keysym;
   XComposeStatus  composestatus;
+  XKeyEvent *keyevent;
 
-  XLookupString ((XKeyEvent *)event, string, 9, &keysym, &composestatus);
+  keyevent = (XKeyEvent *) event;
+  XLookupString (keyevent, string, 9, &keysym, &composestatus);
+  
 
   switch (keysym) {
 
-  case XK_Tab:
-    MOVE_POINTER = MOVE_POINTER ^ TRUE;
-    if (MOVE_POINTER) UpdatePointer (graphic, layout, (XMotionEvent *)event);
-    status = TRUE;
-    break;
+    case XK_KP_Enter:
+    case XK_Return:
+      Screen_to_Image (&X, &Y, (double)keyevent[0].x, (double)keyevent[0].y, layout);
+      X = 0.5*layout[0].matrix.Naxis[0] - X;
+      Y = 0.5*layout[0].matrix.Naxis[1] - Y;
+      Reorient (graphic, layout, X, Y, 0);
+      break;
+    case XK_Prior:
+      Reorient (graphic, layout, layout[0].X, layout[0].Y, +1);
+      break;
+    case XK_Next:
+      Reorient (graphic, layout, layout[0].X, layout[0].Y, -1);
+      break;
+    case XK_Up:
+      Reorient (graphic, layout, layout[0].X, layout[0].Y + 50, 0);
+      break;
+    case XK_Down:
+      Reorient (graphic, layout, layout[0].X, layout[0].Y - 50, 0);
+      break;
+    case XK_Left:
+      Reorient (graphic, layout, layout[0].X + 50, layout[0].Y, 0);
+      break;
+    case XK_Right:
+      Reorient (graphic, layout, layout[0].X - 50, layout[0].Y, 0);
+      break;
 
-  default:
-    status = TRUE;
+    case XK_Tab:
+      MOVE_POINTER = MOVE_POINTER ^ TRUE;
+      if (MOVE_POINTER) UpdatePointer (graphic, layout, (XMotionEvent *)event);
+      status = TRUE;
+      break;
+
+    default:
+      status = TRUE;
   }
 
@@ -35,5 +65,5 @@
   this is all old, but a good example for putting in the cursor motion.
 
-    break;
+  break;
 */
 
