INT PAL 0052630: Bring to front behavior is not correct

This commit is contained in:
mpa 2015-03-24 12:39:17 +03:00
parent 18006cbdf3
commit 3cd4475b68
2 changed files with 7 additions and 12 deletions

View File

@ -843,8 +843,6 @@ void GEOM_Displayer::updateShapeProperties( const Handle(GEOM_AISShape)& AISShap
propMap.value( GEOM::propertyName( GEOM::DisplayMode ) ).toInt() ); propMap.value( GEOM::propertyName( GEOM::DisplayMode ) ).toInt() );
// - face boundaries color and line width // - face boundaries color and line width
if( AISShape->DisplayMode() == GEOM_AISShape::ShadingWithEdges )
AISShape->Attributes()->SetFaceBoundaryDraw( Standard_True );
anAspect = AISShape->Attributes()->FaceBoundaryAspect(); anAspect = AISShape->Attributes()->FaceBoundaryAspect();
anAspect->SetColor( SalomeApp_Tools::color( propMap.value( GEOM::propertyName( GEOM::OutlineColor ) ).value<QColor>() ) ); anAspect->SetColor( SalomeApp_Tools::color( propMap.value( GEOM::propertyName( GEOM::OutlineColor ) ).value<QColor>() ) );
anAspect->SetWidth( propMap.value( GEOM::propertyName( GEOM::LineWidth ) ).toInt() ); anAspect->SetWidth( propMap.value( GEOM::propertyName( GEOM::LineWidth ) ).toInt() );

View File

@ -254,24 +254,21 @@ void GEOM_AISShape::Compute(const Handle(PrsMgr_PresentationManager3d)& aPresent
} }
case ShadingWithEdges: case ShadingWithEdges:
{ {
myDrawer->SetFaceBoundaryDraw( Standard_True );
shadingMode(aPresentationManager, aPrs, Shading); shadingMode(aPresentationManager, aPrs, Shading);
if( anIsColorField && myFieldDimension == 1 ) if( anIsColorField && myFieldDimension == 1 ) {
myDrawer->SetFaceBoundaryDraw( Standard_False );
drawField( aPrs ); drawField( aPrs );
else }
myDrawer->SetFaceBoundaryDraw( Standard_True );
break; break;
} }
case TexturedShape: case TexturedShape:
{ {
if(!isTopLev)
#ifdef USE_TEXTURED_SHAPE #ifdef USE_TEXTURED_SHAPE
AIS_TexturedShape::Compute(aPresentationManager, aPrs, aMode); AIS_TexturedShape::Compute(aPresentationManager, aPrs, aMode);
#else #else
AIS_Shape::Compute(aPresentationManager, aPrs, aMode); AIS_Shape::Compute(aPresentationManager, aPrs, aMode);
#endif #endif
else
shadingMode(aPresentationManager, aPrs, Shading);
break;
} }
} }
if (isShowVectors()) if (isShowVectors())
@ -443,10 +440,10 @@ void GEOM_AISShape::setTopLevel(Standard_Boolean f) {
myPrevDisplayMode = DisplayMode(); myPrevDisplayMode = DisplayMode();
Standard_Integer dm; Standard_Integer dm;
switch(topLevelDisplayMode()) { switch(topLevelDisplayMode()) {
case TopKeepCurrent : dm = myPrevDisplayMode; break; case TopWireFrame : dm = Wireframe; break;
case TopWireFrame : dm = Wireframe; break; case TopShading : dm = Shading; break;
case TopShadingWithEdges : dm = ShadingWithEdges; break; case TopShadingWithEdges : dm = ShadingWithEdges; break;
default : dm = Shading; break; default : dm = myPrevDisplayMode; break;
} }
SetDisplayMode(dm); SetDisplayMode(dm);
} else { } else {