Resolves: tdf#143615 clamp relative times to 1.0
User input permits zero-length animations, so whenever we calculate relative position within the animation time frame, the case mnMinSimpleDuration == 0.0 means: we're already at the end of the animation, i.e. set relative time to 1.0 Change-Id: I0e8c1e29f47bd9fa16f04115cf52d3a176e13fb0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133005 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
This commit is contained in:
@@ -63,9 +63,12 @@ namespace slideshow::internal
|
|||||||
// perform will be called at least mnMinNumberOfTurns
|
// perform will be called at least mnMinNumberOfTurns
|
||||||
// times.
|
// times.
|
||||||
|
|
||||||
// fraction of time elapsed
|
// fraction of time elapsed (clamp to 1.0 for zero-length
|
||||||
|
// animations)
|
||||||
const double nFractionElapsedTime(
|
const double nFractionElapsedTime(
|
||||||
nCurrElapsedTime / mnMinSimpleDuration );
|
mnMinSimpleDuration != 0.0 ?
|
||||||
|
nCurrElapsedTime / mnMinSimpleDuration :
|
||||||
|
1.0 );
|
||||||
|
|
||||||
// fraction of minimum calls performed
|
// fraction of minimum calls performed
|
||||||
const double nFractionRequiredCalls(
|
const double nFractionRequiredCalls(
|
||||||
@@ -115,7 +118,10 @@ namespace slideshow::internal
|
|||||||
// ===============================
|
// ===============================
|
||||||
|
|
||||||
const double nCurrElapsedTime( maTimer.getElapsedTime() );
|
const double nCurrElapsedTime( maTimer.getElapsedTime() );
|
||||||
double nT( nCurrElapsedTime / mnMinSimpleDuration );
|
// clamp to 1.0 for zero animation duration
|
||||||
|
double nT( mnMinSimpleDuration != 0.0 ?
|
||||||
|
nCurrElapsedTime / mnMinSimpleDuration :
|
||||||
|
1.0 );
|
||||||
|
|
||||||
|
|
||||||
// one of the stop criteria reached?
|
// one of the stop criteria reached?
|
||||||
|
Reference in New Issue
Block a user