Salome HOME
Fix for the bug IPAL22857: "Find element by point problems"
authorana <ana@opencascade.com>
Mon, 20 Feb 2012 14:25:20 +0000 (14:25 +0000)
committerana <ana@opencascade.com>
Mon, 20 Feb 2012 14:25:20 +0000 (14:25 +0000)
src/SMESHGUI/SMESHGUI_FindElemByPointDlg.cxx

index 7e4fb90967488ac6360b8aab69d49c5e5e081c47..329a587e88ba3fce902b9af90abda15bf492ac68 100644 (file)
@@ -453,9 +453,6 @@ void SMESHGUI_FindElemByPointOp::onSelectionDone()
   if ( !myMeshIO.IsNull() && myMeshIO->hasEntry() )
     oldMeshEntry = myMeshIO->getEntry();
 
-  myDlg->myMeshName->setText("");
-  myMeshIO.Nullify();
-
   try {
     SALOME_ListIO aList;
     selectionMgr()->selectedObjects(aList, SVTK_Viewer::Type());
@@ -464,13 +461,16 @@ void SMESHGUI_FindElemByPointOp::onSelectionDone()
       Handle(SALOME_InteractiveObject) anIO = aList.First();
       _PTR(SObject) pObj = studyDS()->FindObjectID(anIO->getEntry());
       CORBA::Object_var anObj = SMESH::IObjectToObject( anIO );
-      myMeshOrPart = SMESH::SMESH_IDSource::_narrow(anObj);
-      if ( pObj && !myMeshOrPart->_is_nil() )
+      newMeshEntry = anIO->getEntry();
+      SMESH::SMESH_IDSource_var aMeshOrPart = SMESH::SMESH_IDSource::_narrow(anObj);
+      if ( pObj && !aMeshOrPart->_is_nil() && oldMeshEntry != newMeshEntry )
       {
+        myMeshOrPart = aMeshOrPart;
+        myMeshIO.Nullify();
         myMeshIO = anIO;
         std::string name = pObj->GetName();
+        myDlg->myMeshName->setText("");
         myDlg->myMeshName->setText( QString( name.c_str() ).trimmed() );
-        newMeshEntry = anIO->getEntry();
         SMESH::array_of_ElementType_var  types = myMeshOrPart->GetTypes();
         myDlg->setTypes( types );
       }