[gnome-shell] extensionUtils: Support subdirectories in getCurrentExtension
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] extensionUtils: Support subdirectories in getCurrentExtension
- Date: Tue, 29 May 2012 18:36:31 +0000 (UTC)
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]