vtkRenderWindowInteractor only can add one observer
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
I found this bug in the Insight/InsightApplications/LiverTumorSegmentation/ImageSliceViewer.cpp Althought it is used in itk, it's a vtk program. In the function void ImageSliceViewer ::SetInteractor( vtkRenderWindowInteractor * interactor ) { m_RenderWindow->SetInteractor( interactor );
vtkInteractorStyleImage * interactorStyle = vtkInteractorStyleImage::New();
interactor->SetInteractorStyle( interactorStyle );
interactorStyle->Delete();
interactor->AddObserver( ::vtkCommand::LeftButtonPressEvent, m_InteractorObserver );
interactor->AddObserver( ::vtkCommand::LeftButtonReleaseEvent, m_InteractorObserver );
interactor->AddObserver( ::vtkCommand::MouseMoveEvent, m_InteractorObserver );
}
The interactor only accept the first added observer and neglect the rest. In the above case, only the LeftButtonPressEvent is observed. If I switch the sequence such that the LeftButtonReleaseEvent is added before LeftButtonPressEvent, the LeftButtonReleaseEvent will be observed while the LeftButtonPressEvent is not.