Diffs of the header and source. Maybe ive gone a bit over board and removed all functions with BreakLoopFlag (which are unneccessary), which may break existing implementations that specifically used vtkXRenderWindowInteractor.
If this is an issue just change
BreakLoopFlagOff and On to set Done instead of BreakLoopFlag.
diff --git a/Rendering/UI/vtkXRenderWindowInteractor.h b/Rendering/UI/vtkXRenderWindowInteractor.h
index d5555cafde…f6fe969d51 100644
— a/Rendering/UI/vtkXRenderWindowInteractor.h
+++ b/Rendering/UI/vtkXRenderWindowInteractor.h
@@ -65,18 +65,6 @@ public:
*/
void ProcessEvents() override;
-
//@{
-
/**
-
- The BreakLoopFlag is checked in the Start() method.
-
- Setting it to anything other than zero will cause
-
- the interactor loop to terminate and return to the
-
-
*/
-
vtkGetMacro(BreakLoopFlag, int);
-
void SetBreakLoopFlag(int);
-
void BreakLoopFlagOff();
-
void BreakLoopFlagOn();
-
//@}
//@{
/**
@@ -143,7 +131,6 @@ protected:
void FireTimers();
-
static int BreakLoopFlag;
/**
- This will start up the X event loop and never return. If you
diff --git a/Rendering/UI/vtkXRenderWindowInteractor.cxx b/Rendering/UI/vtkXRenderWindowInteractor.cxx
index 0cce4d9771…fead37c302 100644
— a/Rendering/UI/vtkXRenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkXRenderWindowInteractor.cxx
@@ -138,8 +138,6 @@ private:
std::map<int, vtkXRenderWindowInteractorTimer> LocalToTimer;
};
-int vtkXRenderWindowInteractor::BreakLoopFlag = 1;
// for some reason the X11 def of KeySym is getting messed up
typedef XID vtkKeySym;
@@ -172,12 +170,12 @@ vtkXRenderWindowInteractor::~vtkXRenderWindowInteractor()
// This results in Start() returning to its caller.
void vtkXRenderWindowInteractor::TerminateApp()
{
- if (this->Done)
{
return;
}
-
this->Done=1;
// Send a VTK_BreakXtLoop ClientMessage event to be sure we pop out of the
// event loop. This “wakes up” the event loop. Otherwise, it might sit idle
@@ -198,34 +196,10 @@ void vtkXRenderWindowInteractor::TerminateApp()
XFlush(client.display);
}
-void vtkXRenderWindowInteractor::SetBreakLoopFlag(int f)
-{
- if (f)
- {
- this->BreakLoopFlagOn();
- }
- else
- {
- this->BreakLoopFlagOff();
- }
-}
-
-void vtkXRenderWindowInteractor::BreakLoopFlagOff()
-{
- this->BreakLoopFlag = 0;
- this->Modified();
-}
-
-void vtkXRenderWindowInteractor::BreakLoopFlagOn()
-{
- this->TerminateApp();
- this->Modified();
-}
-
void vtkXRenderWindowInteractor::ProcessEvents()
{
XEvent event;
- while (XPending(this->DisplayId) && this->BreakLoopFlag == 0)
- while (XPending(this->DisplayId) && this->Done == 0)
{
XNextEvent(this->DisplayId, &event);
this->DispatchEvent(&event);
@@ -242,7 +216,7 @@ void vtkXRenderWindowInteractor::StartEventLoop()
fd_set in_fds;
struct timeval tv;
- this->Done = 0;
do
{
if (XPending(this->DisplayId) == 0)
@@ -267,7 +241,7 @@ void vtkXRenderWindowInteractor::StartEventLoop()
this->DispatchEvent(&event);
}
this->FireTimers();
- } while (this->BreakLoopFlag == 0);
- } while (this->Done == 0);
}
//-------------------------------------------------------------------------
@@ -384,7 +358,7 @@ void vtkXRenderWindowInteractor::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
- os << indent << "BreakLoopFlag: " << (this->BreakLoopFlag ? “On\n” : “Off\n”);
- os << indent << "Done: " << (this->Done ? “Yes\n” : “No\n”);
}
//-------------------------------------------------------------------------