Index: /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/CursorOps.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/CursorOps.c	(revision 37780)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/CursorOps.c	(revision 37781)
@@ -100,8 +100,12 @@
   // Sx, Sy are the screen coordinates of the Ix,Iy pixel
   Image_to_Picture (&Sx, &Sy, Ix, Iy, picture);
+  
+  // Sx,Sy should be forced into the pixel
+  int Sxi = Sx + 0.5;
+  int Syi = Sy + 0.5;
 
   // i_start, j_start are now limited to valid screen coordinates
-  *i_start = MIN (MAX (Sx, 0), picture[0].dx);
-  *j_start = MIN (MAX (Sy, 0), picture[0].dy);
+  *i_start = MIN (MAX (Sxi, 0), picture[0].dx);
+  *j_start = MIN (MAX (Syi, 0), picture[0].dy);
 }
   
@@ -127,18 +131,19 @@
   Iy = MIN (MAX (Iy, 0), matrix[0].Naxis[1]);
 
-  // I_end, J_end are the last displayed image pixel 
-  // *I_end = Ix;
-  // *J_end = Iy;
-
   // Sx, Sy are the screen coordinates of the Ix,Iy pixel
   Image_to_Picture (&Sx, &Sy, Ix, Iy, picture);
 
-  double IxTest, IyTest;
-  Picture_to_Image (&IxTest, &IyTest, Sx, Sy, picture);
-  fprintf (stderr, "dx,dy: %d,%d : %f,%f : %f,%f : %f:%f\n", picture[0].dx, picture[0].dy, Ix, Iy, Sx, Sy, IxTest, IyTest);
+  // Sx,Sy should be forced into the pixel
+  int Sxi = Sx + 0.5;
+  int Syi = Sy + 0.5;
+
+  // double IxTest, IyTest;
+  // Picture_to_Image (&IxTest, &IyTest, Sx, Sy, picture);
+  // fprintf (stderr, "dx,dy: %d,%d : %f,%f : %f,%f : %f:%f\n", picture[0].dx, picture[0].dy, Ix, Iy, Sx, Sy, IxTest, IyTest);
 
   // i_start, j_start are now limited to valid screen coordinates
-  *i_end = MIN (MAX (Sx, 0), picture[0].dx);
-  *j_end = MIN (MAX (Sy, 0), picture[0].dy);
+  // XXX: i_end, j_end *should* be the last valid screen pixel plus 1
+  *i_end = MIN (MAX (Sxi, 0), picture[0].dx);
+  *j_end = MIN (MAX (Syi, 0), picture[0].dy);
 
   // round off error can leave us with a small number of extra pixels here.
Index: /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/InterpretKeys.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/InterpretKeys.c	(revision 37780)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/InterpretKeys.c	(revision 37781)
@@ -91,9 +91,13 @@
 # define SET_CHANNEL_CASE(NCHAN) \
     case XK_F##NCHAN: \
+      image[0].currentChannel = NCHAN-1; \
       image[0].image = &image[0].channel[NCHAN-1]; \
       SetColorScale (graphic, image); \
-      Remap (graphic, image); \
       Reorient (graphic, image, image[0].picture.Xc, image[0].picture.Yc, 0); \
+      Screen_to_Image (&X, &Y, (double)(event[0].x + 0.5), (double)(event[0].y + 0.5), &image[0].picture); \
+      UpdateStatusBox (graphic, image, X, Y, 0.0, 1); \
       break;
+
+//    Remap (graphic, image); 
 
     // the number of entries here must match the value of NCHANNELS in contants.h
Index: /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/LoadPicture.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/LoadPicture.c	(revision 37780)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/kapa2/src/LoadPicture.c	(revision 37781)
@@ -59,5 +59,5 @@
   // image[0].wide.expand = (wx > 1.0) ? ceil (-wx) : floor (1.0 / wx);
   image[0].wide.expand = (wx > 1.0) ? floor (-wx) : ceil (1.0 / wx);
-  fprintf (stderr, "%d : %f\n", image[0].wide.expand, wx);
+  // fprintf (stderr, "%d : %f\n", image[0].wide.expand, wx);
   // image[0].wide.expand = (wx > 1.0) ? ceil (-wx) : floor (1.0 / wx);
 
