[ROOT] Root GUI problem ...

From: Jacek M. Holeczek (holeczek@us.edu.pl)
Date: Thu Apr 04 2002 - 19:33:50 MEST


Hi,
I encountered a stupid problem ... 
First have a look at the following piece of code :
-----------------------------------------
void G4UIRoot::Exit() {
  
  gSystem->ProcessEvents();
  
  if( (UI = G4UImanager::GetUIpointer())) {
    UI->SetCoutDestination(NULL);
    UI->SetSession(NULL);
    UI = G4UImanager::GetUIpointer();
    gSystem->ProcessEvents();
  }
  
  if (historyFrame) {
    delete historyFrame; // inherits from "public TGMainFrame"
    historyFrame = ((G4RootTextFrame *)0);
    gSystem->ProcessEvents();
  }
  
  if (outputFrame) {
    delete outputFrame; // inherits from "public TGMainFrame"
    outputFrame = ((G4RootTextFrame *)0);
    gSystem->ProcessEvents();
  }
  
  if (errorFrame) {
    delete errorFrame; // inherits from "public TGMainFrame"
    errorFrame = ((G4RootTextFrame *)0);
    gSystem->ProcessEvents();
  }
  
  if (mainFrame) {
    delete mainFrame; // inherits from "public TGMainFrame"
    mainFrame = ((G4RootMainFrame *)0);
    gSystem->ProcessEvents();
  }
  
  if (!existedRint) {
    gApplication->Terminate(0); // Rint
    gSystem->ProcessEvents();
  }
  
}
-----------------------------------------
Then some explanations ...
On "Exit" this is expected to close and destroy max. 4 of X11 windows
(historyFrame, outputFrame, errorFrame, mainFrame).
The first version of this routine had no "gSystem->ProcessEvents();" at
all and then it was sure that a couple of :
	Error in <RootX11ErrorHandler>: BadWindow (invalid Window parameter) (XID: 54526138)
	Error ... BadDrawable ... (something like this)
would appear after one tried to "Exit".
Now, the routine contains a lot of "gSystem->ProcessEvents();" and in
principle there are no X11 errors present ... unfortunately, from time to
time (very rarely) the "BadWindow" errors still appears.
Can one make this routine more robust ?
Any help appreciated,
Thanks in advance,
Jacek.



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:48 MET