diff --git a/common/content/hints.js b/common/content/hints.js
index 73059aae..3b598f3e 100644
--- a/common/content/hints.js
+++ b/common/content/hints.js
@@ -301,7 +301,8 @@ var HintSession = Class("HintSession", CommandMode, {
if (!rect.width || !rect.height)
if (!Array.some(elem.childNodes, function (elem) elem instanceof Element && DOM(elem).style.float != "none" && isVisible(elem)))
- return false;
+ if (elem.textContent || !elem.name)
+ return false;
let computedStyle = doc.defaultView.getComputedStyle(elem, null);
if (computedStyle.visibility != "visible" || computedStyle.display == "none")
@@ -763,7 +764,7 @@ var Hints = Module("hints", {
this.addMode("Y", "Yank hint description", function (elem) editor.setRegister(null, elem.textContent || "", true));
this.addMode("A", "Yank hint anchor url", function (elem) {
let uri = elem.ownerDocument.documentURIObject.clone();
- uri.ref = elem.id;
+ uri.ref = elem.id || elem.name;
dactyl.clipboardWrite(uri.spec, true);
});
this.addMode("c", "Open context menu", function (elem) DOM(elem).contextmenu());
@@ -1276,7 +1277,7 @@ var Hints = Module("hints", {
"regexpmap", {
"[iI]": "img",
"[asOTvVWy]": [":-moz-any-link", "area[href]", "img[src]", "iframe[src]"],
- "[A]": ["[id],a[name]"],
+ "[A]": ["[id]", "a[name]"],
"[f]": "body",
"[F]": ["body", "code", "div", "html", "p", "pre", "span"],
"[S]": ["input:not([type=hidden])", "textarea", "button", "select"]
diff --git a/common/modules/bootstrap.jsm b/common/modules/bootstrap.jsm
index 4343ec21..7145110b 100644
--- a/common/modules/bootstrap.jsm
+++ b/common/modules/bootstrap.jsm
@@ -123,8 +123,9 @@ else
},
cleanup: function unregister() {
- for each (let factory in this.factories.splice(0))
+ for each (let factory in this.factories)
this.manager.unregisterFactory(factory.classID, factory);
+ this.factories = {};
},
purge: function purge() {
@@ -185,11 +186,15 @@ else
}),
registerFactory: function registerFactory(factory) {
+ if (Set.has(this.factories, factory.contractID))
+ this.manager.unregisterFactory(this.factories[factory.contractID].classID,
+ this.factories[factory.contractID]);
+
this.manager.registerFactory(factory.classID,
String(factory.classID),
factory.contractID,
factory);
- this.factories.push(factory);
+ this.factories[factory.contractID] = factory;
}
};
diff --git a/pentadactyl/install.rdf b/pentadactyl/install.rdf
index cfb6027f..3ef9b7c7 100644
--- a/pentadactyl/install.rdf
+++ b/pentadactyl/install.rdf
@@ -8,7 +8,8 @@
em:version="1.0rc2pre"
em:description="Firefox for Vim and Links addicts"
em:homepageURL="http://dactyl.sourceforge.net/pentadactyl"
- em:bootstrap="true">
+ em:bootstrap="true"
+ em:strictCompatibility="true">
Kris Maglione, Doug Kearns
Kris Maglione
@@ -31,7 +32,7 @@
+ em:maxVersion="13.*"/>