Inconsistent behavior in X11 interactor ProcessEvents

When I call ProcessEvents in my own loop, the joystick functionality: Dolly, Spin, Rotate do not work. However, zooming in/out works. This is not the case on windows or SDL2.

void callback(vtkObject* caller, unsigned long eid, void* callData)
{
  ... // cast caller to interactor
  ... // my event loop starts
    interactor->ProcessEvents()
  ... // my event loop ends  
}
interactor->AddObserver(vtkCommand::StartEvent, this, &callback);
interactor->Start()

This exact style of code works on Win32 and with the SDL2 interactors, but not on X11 platform.

I’ve traced this to occur from the ProcessEvents function in vtkX11RenderWindowInteractor.cxx. It neither waits for timeout nor does it fire the timers. I think, because of this, the joystick[Camera, Actor] does not function for Dolly, Spin, Rotate interactions as they use timers.

Proposed fix in MR !8560
@mwestphal