X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSalomeApp%2FSalomeApp_Study.cxx;fp=src%2FSalomeApp%2FSalomeApp_Study.cxx;h=2934889368ae8446a0f7c327f85641c628322024;hb=e72e7051c3c2a01ecbddba3eee4bd98c16dd8996;hp=70bd944cbdf7458bfc2b35f49957c6cbf107c4e3;hpb=b8e2a0caada80834dd418eccad49b15519b94354;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Study.cxx b/src/SalomeApp/SalomeApp_Study.cxx index 70bd944cb..293488936 100644 --- a/src/SalomeApp/SalomeApp_Study.cxx +++ b/src/SalomeApp/SalomeApp_Study.cxx @@ -47,6 +47,11 @@ #include +#ifndef DISABLE_PYCONSOLE + #include "SalomeApp_PyInterp.h" // WARNING! This include must be the first! + #include +#endif + #include "utilities.h" #include "SALOMEDS_Tool.hxx" @@ -729,7 +734,16 @@ void SalomeApp_Study::closeDocument(bool permanently) if ( myObserver ) myStudyDS->detach( myObserver->_this() ); if ( permanently ) { + SUIT_Desktop* desk = SUIT_Session::session()->activeApplication()->desktop(); + bool isBlocked = desk->signalsBlocked(); + desk->blockSignals( true ); SalomeApp_Application::studyMgr()->Close( studyPtr ); + desk->blockSignals( isBlocked ); +#ifndef DISABLE_PYCONSOLE + SalomeApp_Application* app = dynamic_cast( application() ); + if( app->pythonConsole() ) + app->pythonConsole()->getInterp()->destroy(); +#endif } SALOMEDSClient_Study* aStudy = 0; setStudyDS( _PTR(Study)(aStudy) );