| Summary: | The OIX viewer is frozen | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | ob214 |
| Component: | visualization/OpenInventor | Assignee: | Satoshi Tanaka <stanaka> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | barrand, John.Allison, stanaka |
| Priority: | P2 | ||
| Version: | other | ||
| Hardware: | PC | ||
| OS: | Linux | ||
|
Description
ob214
2001-01-24 10:41:00 CET
Jeff, Guy - any ideas? I have started to look at this problem but I am also VERY busy with releasing things related to analysis. I have tried with version of SoFree & HEPVis with which I know that things was ok and now things are clearly broken. Then it is not related to the "transfer" of HEPVis/SoWindow under vis/OpenInventor/G4SoWindow (in prevision of HEPVis-6.0). I suspect that something had changed in the way to treat the X event within the G4/interfaces/G4Xt or G4UIXm classes. Will try to finish the debugging before the 30th of November (2001 !)... The problem came from the usage of the std::remove in source/interfaces/common/src/G4VInteractorManager::RemoveDispatcher. SoXt::dispatchEvent doing the XtDispatchEvent it is necessaory to remove XtDispatchEvent from the list of Xt displatchers when using Inventor. Else the X event are never passed to SoXt::dispatchEvent and the Inventor viewers are out. A call to G4VInteractorManager is done in G4OpenInventorX but it appears that within the G4VInteratorManager::RemoveDispatcher the std::remove does not do the job. Then I have changed the logic and do a for + erase(*it) to remove the Xt dispatcher. I have tested on Linux with G4UIXm, OpenGLImmediateXm and OpenInventor driver in the same session. Things seem ok. |