diff options
author | Kris Maglione <maglione.k@gmail.com> | 2011-01-05 18:54:17 -0500 |
---|---|---|
committer | Kris Maglione <maglione.k@gmail.com> | 2011-01-05 18:54:17 -0500 |
commit | 841459e507516cf6aebb6e1af0da174f613daf05 (patch) | |
tree | 9186e225e68b235a336ba19162101da55213c3a2 | |
parent | 663a3981126591f75c3c0b8b011b7b797c29f19d (diff) | |
download | pentadactyl-841459e507516cf6aebb6e1af0da174f613daf05.tar.gz |
Fix some bugs.
-rw-r--r-- | common/content/hints.js | 3 | ||||
-rw-r--r-- | common/modules/base.jsm | 20 | ||||
-rw-r--r-- | common/modules/io.jsm | 8 |
3 files changed, 21 insertions, 10 deletions
diff --git a/common/content/hints.js b/common/content/hints.js index c4c1c2fc..3f6ccdd3 100644 --- a/common/content/hints.js +++ b/common/content/hints.js @@ -300,7 +300,7 @@ var Hints = Module("hints", { util.computedStyle(fragment).height; // Force application of binding. let container = doc.getAnonymousElementByAttribute(fragment, "anonid", "hints"); - let baseNodeAbsolute = util.xmlToDom(<span highlight="Hint"/>, doc); + let baseNodeAbsolute = util.xmlToDom(<span highlight="Hint" style="display: none"/>, doc); let mode = this._hintMode; let res = util.evaluateXPath(mode.xpath, doc, null, true); @@ -432,6 +432,7 @@ var Hints = Module("hints", { continue; hint.imgSpan = util.xmlToDom(<span highlight="Hint" dactyl:hl="HintImage" xmlns:dactyl={NS}/>, doc); + hint.imgSpan.style.display = "none"; hint.imgSpan.style.left = (rect.left + offsetX) + "px"; hint.imgSpan.style.top = (rect.top + offsetY) + "px"; hint.imgSpan.style.width = (rect.right - rect.left) + "px"; diff --git a/common/modules/base.jsm b/common/modules/base.jsm index 6c1f0ee2..31a5e139 100644 --- a/common/modules/base.jsm +++ b/common/modules/base.jsm @@ -9,10 +9,17 @@ if (!JSMLoader) builtin: Components.utils.Sandbox(this), factories: [], globals: {}, + io: Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService), manager: Components.manager.QueryInterface(Components.interfaces.nsIComponentRegistrar), stale: {}, + getTarget: function getTarget(url) { + let chan = this.io.newChannel(url, null, null); + chan.cancel(Components.results.NS_BINDING_ABORTED); + return chan.name; + }, load: function load(url, target) { - if (this.stale[url]) { + let stale = this.stale[url]; + if (stale) { delete this.stale[url]; let global = this.globals[url]; @@ -28,9 +35,12 @@ if (!JSMLoader) Components.utils.reportError(e); } - Components.classes["@mozilla.org/moz/jssubscript-loader;1"] - .getService(Components.interfaces.mozIJSSubScriptLoader) - .loadSubScript(url, global); + if (stale !== this.getTarget(url)) + delete this.globals[url]; + else + Components.classes["@mozilla.org/moz/jssubscript-loader;1"] + .getService(Components.interfaces.mozIJSSubScriptLoader) + .loadSubScript(url, global); } Components.utils.import(url, target); }, @@ -40,7 +50,7 @@ if (!JSMLoader) }, purge: function purge() { for (let [url, global] in Iterator(this.globals)) - this.stale[url] = true; + this.stale[url] = this.getTarget(url); }, registerGlobal: function registerGlobal(uri, obj) { if (Cu.getGlobalForObject) diff --git a/common/modules/io.jsm b/common/modules/io.jsm index 3823af27..1cf24a3e 100644 --- a/common/modules/io.jsm +++ b/common/modules/io.jsm @@ -221,12 +221,12 @@ var IO = Module("io", { newDir = newDir || "~"; if (newDir == "-") { - dactyl.assert(this._oldcwd != null, "E186: No previous directory"); + util.assert(this._oldcwd != null, "E186: No previous directory"); [this._cwd, this._oldcwd] = [this._oldcwd, this.cwd]; } else { let dir = io.File(newDir); - dactyl.assert(dir.exists() && dir.isDirectory(), "E344: Can't find directory " + dir.path.quote()); + util.assert(dir.exists() && dir.isDirectory(), "E344: Can't find directory " + dir.path.quote()); dir.normalize(); [this._cwd, this._oldcwd] = [dir.path, this.cwd]; } @@ -357,7 +357,7 @@ var IO = Module("io", { file = this.pathSearch(program); if (!file || !file.exists()) { - dactyl.echoerr("Command not found: " + program); + util.dactyl.echoerr("Command not found: " + program); return -1; } @@ -576,7 +576,7 @@ var IO = Module("io", { let lines = [cmd.serialize().map(commands.commandToString, cmd) for (cmd in commands.iterator()) if (cmd.serialize)]; lines = array.flatten(lines); - lines.unshift('"' + dactyl.version + "\n"); + lines.unshift('"' + util.version + "\n"); lines.push("\n\" vim: set ft=" + config.name + ":"); try { |