summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorMarco Cecchetti <marco.cecchetti@collabora.com>2016-01-15 11:28:28 +0100
committerAndras Timar <andras.timar@collabora.com>2016-06-12 12:46:44 +0200
commit259a095613154ef90df28e7e2b63948f6f2aadab (patch)
tree73c6003675a2aedca25a7bb5cbff5f6c91e0d2d3 /filter
parent9ed54cfa299aa8c82ec130b325ee0555c5a7078e (diff)
svg export: fall back to crossfade for not supported transitions
If we do not support the requested transition type we fall back to crossfade transition. If we do not provide an alternative transition and we set the state of the animation node to 'invalid' the animation engine stops itself. Change-Id: Ie476dd579248e9d776e27797dca2ea867f3e5e54 Reviewed-on: https://gerrit.libreoffice.org/21490 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
Diffstat (limited to 'filter')
-rw-r--r--filter/source/svg/presentation_engine.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
index 09bf1960b95a..d2afe9c5794e 100644
--- a/filter/source/svg/presentation_engine.js
+++ b/filter/source/svg/presentation_engine.js
@@ -7024,6 +7024,7 @@ AnimationTransitionFilterNode.prototype.createActivity = function()
AnimationTransitionFilterNode.prototype.parseElement = function()
{
var bRet = AnimationTransitionFilterNode.superclass.parseElement.call( this );
+ var bIsValidTransition = true;
var aAnimElem = this.aElement;
@@ -7036,7 +7037,7 @@ AnimationTransitionFilterNode.prototype.parseElement = function()
}
else
{
- this.eCurrentState = INVALID_NODE;
+ bIsValidTransition = false;
log( 'AnimationTransitionFilterNode.parseElement: transition type not valid: ' + sTypeAttr );
}
@@ -7051,10 +7052,20 @@ AnimationTransitionFilterNode.prototype.parseElement = function()
}
else
{
- this.eCurrentState = INVALID_NODE;
+ bIsValidTransition = false;
log( 'AnimationTransitionFilterNode.parseElement: transition subtype not valid: ' + sSubTypeAttr );
}
+ // if we do not support the requested transition type we fall back to crossfade transition;
+ // note: if we do not provide an alternative transition and we set the state of the animation node to 'invalid'
+ // the animation engine stops itself;
+ if( !bIsValidTransition )
+ {
+ this.eTransitionType = FADE_TRANSITION;
+ this.eTransitionSubType = CROSSFADE_TRANS_SUBTYPE;
+ log( 'AnimationTransitionFilterNode.parseElement: in place of the invalid transition a crossfade transition is used' );
+ }
+
// direction attribute
this.bReverseDirection = false;
var sDirectionAttr = aAnimElem.getAttributeNS( NSS['smil'], 'direction' );