background: Inherit Animation from GnomeDesktop.BGSlideShow

Animation background is just wrapping a native GnomeDesktop BGSlideShow
object, so instead of using composition we can now just inherit from the
native GObject, re-using native properties when possible, and avoiding
to keep an extra wrapper to the bg file.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/563
This commit is contained in:
Marco Trevisan (Treviño) 2019-05-29 01:21:51 +02:00 committed by Florian Müllner
parent 5944a1e74b
commit 348e4ac901

View File

@ -625,11 +625,11 @@ var BackgroundSource = class BackgroundSource {
}
};
var Animation = class Animation {
constructor(params) {
params = Params.parse(params, { file: null });
var Animation = GObject.registerClass(
class Animation extends GnomeDesktop.BGSlideShow {
_init(params) {
super._init(params);
this.file = params.file;
this.keyFrameFiles = [];
this.transitionProgress = 0.0;
this.transitionDuration = 0.0;
@ -637,9 +637,7 @@ var Animation = class Animation {
}
load(callback) {
this._show = new GnomeDesktop.BGSlideShow({ file: this.file });
this._show.load_async(null, () => {
this.load_async(null, () => {
this.loaded = true;
if (callback)
callback();
@ -649,13 +647,11 @@ var Animation = class Animation {
update(monitor) {
this.keyFrameFiles = [];
if (!this._show)
if (this.get_num_slides() < 1)
return;
if (this._show.get_num_slides() < 1)
return;
let [progress, duration, isFixed_, filename1, filename2] = this._show.get_current_slide(monitor.width, monitor.height);
let [progress, duration, isFixed_, filename1, filename2] =
this.get_current_slide(monitor.width, monitor.height);
this.transitionDuration = duration;
this.transitionProgress = progress;
@ -666,8 +662,7 @@ var Animation = class Animation {
if (filename2)
this.keyFrameFiles.push(Gio.File.new_for_path(filename2));
}
};
Signals.addSignalMethods(Animation.prototype);
});
var BackgroundManager = class BackgroundManager {
constructor(params) {