summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKris Maglione <maglione.k@gmail.com>2011-01-05 18:54:17 -0500
committerKris Maglione <maglione.k@gmail.com>2011-01-05 18:54:17 -0500
commit841459e507516cf6aebb6e1af0da174f613daf05 (patch)
tree9186e225e68b235a336ba19162101da55213c3a2
parent663a3981126591f75c3c0b8b011b7b797c29f19d (diff)
downloadpentadactyl-841459e507516cf6aebb6e1af0da174f613daf05.tar.gz
Fix some bugs.
-rw-r--r--common/content/hints.js3
-rw-r--r--common/modules/base.jsm20
-rw-r--r--common/modules/io.jsm8
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 {