Index: trunk/Ohana/src/kii/event/InterpretPresses.c
===================================================================
--- trunk/Ohana/src/kii/event/InterpretPresses.c	(revision 2466)
+++ trunk/Ohana/src/kii/event/InterpretPresses.c	(revision 6674)
@@ -10,5 +10,5 @@
   
   if ((event[0].type == ButtonPress) && InPicture (event, &layout[0].picture)) {
-    Reorient (graphic, layout, event);
+    ReorientOnButton (graphic, layout, event);
   }
 
@@ -50,2 +50,24 @@
 }
 
+void ReorientOnButton (Graphic *graphic, Layout *layout, XButtonEvent *mouse_event) {
+
+  double X, Y;
+
+  Screen_to_Image (&X, &Y, (double)mouse_event[0].x, (double)mouse_event[0].y, layout);
+  X = 0.5*layout[0].matrix.Naxis[0] - X;
+  Y = 0.5*layout[0].matrix.Naxis[1] - Y;
+
+  switch (mouse_event[0].button) {
+    case 1:
+      Reorient (graphic, layout, X, Y, 0);
+      break;
+    case 2:
+      Reorient (graphic, layout, X, Y, -1);
+      break;
+    case 3:
+      Reorient (graphic, layout, X, Y, +1);
+      break;
+    default:
+      break;
+  }
+}
