[gnome-shell] background: Inherit Animation from GnomeDesktop.BGSlideShow



commit 348e4ac9018da294784759cae761ebea97864609
Author: Marco Trevisan (Treviño) <mail 3v1n0 net>
Date:   Wed May 29 01:21:51 2019 +0200

    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

 js/ui/background.js | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/background.js b/js/ui/background.js
index f99ad381c1..4dde09101d 100644
--- a/js/ui/background.js
+++ b/js/ui/background.js
@@ -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) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]