background: Look at the duration per-step

We need to look at the duration of the current step of the slideshow
to determine when to next queue an event, rather than the full slideshow
duration.

https://bugzilla.gnome.org/show_bug.cgi?id=695882
This commit is contained in:
Jasper St. Pierre 2013-03-14 16:58:52 -04:00
parent 8edd7ad32e
commit 5fecd07045

View File

@ -440,11 +440,11 @@ const Background = new Lang.Class({
if (!this._cancellable || this._cancellable.is_cancelled())
return;
if (!this._animation.duration)
if (!this._animation.transitionDuration)
return;
let nSteps = 255 / ANIMATION_OPACITY_STEP_INCREMENT;
let timePerStep = (this._animation.duration * 1000) / nSteps;
let timePerStep = (this._animation.transitionDuration * 1000) / nSteps;
let interval = Math.max(ANIMATION_MIN_WAKEUP_INTERVAL * 1000,
timePerStep);
@ -591,8 +591,8 @@ const Animation = new Lang.Class({
this.filename = params.filename;
this.keyFrameFiles = [];
this.duration = 0.0;
this.transitionProgress = 0.0;
this.transitionDuration = 0.0;
this.loaded = false;
},
@ -604,7 +604,6 @@ const Animation = new Lang.Class({
this._show.load_async(null,
Lang.bind(this,
function(object, result) {
this.duration = this._show.get_total_duration();
this.loaded = true;
if (callback)
callback();
@ -622,6 +621,7 @@ const Animation = new Lang.Class({
let [progress, duration, isFixed, file1, file2] = this._show.get_current_slide(monitor.width, monitor.height);
this.transitionDuration = duration;
this.transitionProgress = progress;
if (file1)