Index: vtkImagePlaneWidget.h
===================================================================
RCS file: /cvsroot/VTK/VTK/Hybrid/vtkImagePlaneWidget.h,v
retrieving revision 1.45
diff -u -r1.45 vtkImagePlaneWidget.h
--- vtkImagePlaneWidget.h	9 Dec 2004 22:00:30 -0000	1.45
+++ vtkImagePlaneWidget.h	22 Jun 2005 11:45:36 -0000
@@ -355,6 +355,23 @@
   int GetCursorData(double xyzv[4]);
 
   // Description:
+  // Get the status of the cursor data.  If this returns 1 the
+  // CurrentCursorPosition and CurrentImageValue will have current
+  // data.  If not, these values are invalid.
+  int GetCursorDataStatus();
+
+  // Description:
+  // Get the current cursor position.  To be used in conjunction with
+  // GetCursorDataStatus.
+  vtkGetVectorMacro(CurrentCursorPosition,double,3);
+
+  // Description:
+  // Get the current image value at the current cursor position.  To
+  // be used in conjunction with GetCursorDataStatus.  The value is
+  // VTK_DOUBLE_MAX when the data is invalid.
+  vtkGetMacro(CurrentImageValue,double);
+  
+  // Description:
   // Choose between voxel centered or continuous cursor probing.  With voxel
   // centered probing, the cursor snaps to the nearest voxel and the reported
   // cursor coordinates are extent based.  With continuous probing, voxel data
@@ -402,11 +419,11 @@
     CONTROL_MODIFIER    = 2
   };
   //ETX
-  vtkSetClampMacro(LeftButtonAutoModifier,int, SHIFT_MODIFIER, CONTROL_MODIFIER);
+  vtkSetClampMacro(LeftButtonAutoModifier,int, NO_MODIFIER, CONTROL_MODIFIER);
   vtkGetMacro(LeftButtonAutoModifier, int);
-  vtkSetClampMacro(MiddleButtonAutoModifier,int, SHIFT_MODIFIER, CONTROL_MODIFIER);
+  vtkSetClampMacro(MiddleButtonAutoModifier,int, NO_MODIFIER, CONTROL_MODIFIER);
   vtkGetMacro(MiddleButtonAutoModifier, int);
-  vtkSetClampMacro(RightButtonAutoModifier,int, SHIFT_MODIFIER, CONTROL_MODIFIER);
+  vtkSetClampMacro(RightButtonAutoModifier,int, NO_MODIFIER, CONTROL_MODIFIER);
   vtkGetMacro(RightButtonAutoModifier, int);
 
 protected:
Index: vtkImagePlaneWidget.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Hybrid/vtkImagePlaneWidget.cxx,v
retrieving revision 1.91
diff -u -r1.91 vtkImagePlaneWidget.cxx
--- vtkImagePlaneWidget.cxx	25 Mar 2005 15:16:53 -0000	1.91
+++ vtkImagePlaneWidget.cxx	22 Jun 2005 11:45:41 -0000
@@ -862,6 +862,7 @@
   this->EndInteraction();
   this->InvokeEvent(vtkCommand::EndInteractionEvent,0);
   this->Interactor->Render();
+  this->Modified();
 }
 
 void vtkImagePlaneWidget::StartWindowLevel()
@@ -1106,6 +1107,17 @@
   return 1;
 }
 
+int vtkImagePlaneWidget::GetCursorDataStatus()
+{
+  if ( this->State != vtkImagePlaneWidget::Cursoring  || \
+    this->CurrentImageValue == VTK_DOUBLE_MAX )
+    {
+    return 0;
+    }
+  
+  return 1;
+}
+
 void vtkImagePlaneWidget::ManageTextDisplay()
 {
   if ( !this->DisplayText )
@@ -1234,7 +1246,6 @@
   // or a ZX plane if i = 1, y-normal
   //
   this->PlaneOrientation = i;
-  this->Modified();
 
   // This method must be called _after_ SetInput
   //
@@ -1304,6 +1315,7 @@
   this->BuildRepresentation();
   this->UpdateNormal();
   this->UpdateOrigin();
+  this->Modified();
 }
 
 void vtkImagePlaneWidget::SetInput(vtkDataSet* input)
@@ -1730,6 +1742,7 @@
   this->PlaneSource->Update();
   this->BuildRepresentation();
   this->UpdateOrigin();
+  this->Modified();
 }
 
 double vtkImagePlaneWidget::GetSlicePosition()
@@ -1810,6 +1823,7 @@
   this->PlaneSource->Update();
   this->BuildRepresentation();
   this->UpdateOrigin();
+  this->Modified();
 }
 
 int vtkImagePlaneWidget::GetSliceIndex()
@@ -2102,11 +2116,13 @@
 void vtkImagePlaneWidget::SetOrigin(double x, double y, double z)
 {
   this->PlaneSource->SetOrigin(x,y,z);
+  this->Modified();
 }
 
 void vtkImagePlaneWidget::SetOrigin(double xyz[3])
 {
   this->PlaneSource->SetOrigin(xyz);
+  this->Modified();
 }
 
 double* vtkImagePlaneWidget::GetOrigin()
@@ -2122,11 +2138,13 @@
 void vtkImagePlaneWidget::SetPoint1(double x, double y, double z)
 {
   this->PlaneSource->SetPoint1(x,y,z);
+  this->Modified();
 }
 
 void vtkImagePlaneWidget::SetPoint1(double xyz[3])
 {
   this->PlaneSource->SetPoint1(xyz);
+  this->Modified();
 }
 
 double* vtkImagePlaneWidget::GetPoint1()
@@ -2142,11 +2160,13 @@
 void vtkImagePlaneWidget::SetPoint2(double x, double y, double z)
 {
   this->PlaneSource->SetPoint2(x,y,z);
+  this->Modified();
 }
 
 void vtkImagePlaneWidget::SetPoint2(double xyz[3])
 {
   this->PlaneSource->SetPoint2(xyz);
+  this->Modified();
 }
 
 double* vtkImagePlaneWidget::GetPoint2()
