From edba4119fffb83d7a001f5a2845d20ce3d6c6a1e Mon Sep 17 00:00:00 2001 From: Andre Fischer Date: Fri, 15 Jun 2012 06:11:45 +0000 Subject: [PATCH] Resolves: #i119966# Fixed handling of the "visibility" flag of animations. Patch by: Steve Yin Review by: Andre Fischer (cherry picked from commit 241c9736944e49308e03b74191524a1b8a5076bb) Conflicts: animations/source/animcore/targetpropertiescreator.cxx Change-Id: Ic81ff35a5a31ba5239510e85c17bb4a261d57b6a --- .../animcore/targetpropertiescreator.cxx | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/animations/source/animcore/targetpropertiescreator.cxx b/animations/source/animcore/targetpropertiescreator.cxx index 9e9fd27c0cb8..d42799f4fc3e 100644 --- a/animations/source/animcore/targetpropertiescreator.cxx +++ b/animations/source/animcore/targetpropertiescreator.cxx @@ -267,9 +267,9 @@ namespace animcore // FALLTHROUGH intended case animations::AnimationNodeType::AUDIO: // FALLTHROUGH intended - default: + /*default: // ignore this node, no valuable content for now. - break; + break;*/ case animations::AnimationNodeType::SET: { @@ -332,9 +332,9 @@ namespace animcore // initially. This is currently the only place // where a shape effect influences shape // attributes outside it's effective duration. + sal_Bool bVisible( sal_False ); if( xAnimateNode->getAttributeName().equalsIgnoreAsciiCase("visibility") ) { - sal_Bool bVisible( sal_False ); uno::Any aAny( xAnimateNode->getTo() ); @@ -360,22 +360,27 @@ namespace animcore } } - if( bVisible ) + /*if( bVisible ) { // target is set to 'visible' at the // first relevant effect. Thus, target // must be initially _hidden_, for the // effect to have visible impact. - mrShapeHash.insert( + */ + } + // target is set the 'visible' value, + // so we should record the opposite value + mrShapeHash.insert( XShapeHash::value_type( aTarget, VectorOfNamedValues( 1, beans::NamedValue( - xAnimateNode->getAttributeName(), - uno::makeAny( sal_False ) ) ) ) ); - } - } + //xAnimateNode->getAttributeName(), + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("visibility")), + uno::makeAny( !bVisible ) ) ) ) ); + //} + //} } break; }