[gnome-shell] extensionUtils: Support subdirectories in getCurrentExtension



commit 65d23fb9a3ecc84e04d4c8a59df4c066d78e73c4
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon May 28 17:21:02 2012 -0400

    extensionUtils: Support subdirectories in getCurrentExtension
    
    Some extensions may have complex layouts with multiple subdirectories.
    Currently, getCurrentExtension doesn't support this, as it uses a regex
    and assume's that the last path's component's parent is all that's needed.
    Fix this.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=677001

 js/misc/extensionUtils.js |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/js/misc/extensionUtils.js b/js/misc/extensionUtils.js
index 82ded01..77a49d5 100644
--- a/js/misc/extensionUtils.js
+++ b/js/misc/extensionUtils.js
@@ -40,13 +40,18 @@ function getCurrentExtension() {
         throw new Error('Could not find current extension');
 
     let path = match[1];
-    let uuid = GLib.path_get_basename(GLib.path_get_dirname(path));
-
-    let extension = extensions[uuid];
-    if (extension === undefined)
-        throw new Error('Could not find current extension');
+    let file = Gio.File.new_for_path(path);
+
+    // Walk up the directory tree, looking for an extesion with
+    // the same UUID as a directory name.
+    while (file != null) {
+        let extension = extensions[file.get_basename()];
+        if (extension !== undefined)
+            return extension;
+        file = file.get_parent();
+    }
 
-    return extension;
+    throw new Error('Could not find current extension');
 }
 
 /**



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