From 20d978bf6319f7f2019fba9ab7159f631835fc43 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Wed, 5 Jan 2011 14:42:39 -0500 Subject: Try not to reset dactylFocusAllowed on hash tag change. Closes issue #237. --- common/content/buffer.js | 14 +++++++++++--- common/content/events.js | 1 + common/modules/util.jsm | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) (limited to 'common') diff --git a/common/content/buffer.js b/common/content/buffer.js index 171e536f..2da48d8e 100644 --- a/common/content/buffer.js +++ b/common/content/buffer.js @@ -288,9 +288,17 @@ var Buffer = Module("buffer", { onLocationChange: function onLocationChange(webProgress, request, uri) { onLocationChange.superapply(this, arguments); statusline.updateUrl(); - statusline.updateProgress(webProgress.DOMWindow || content); - for (let frame in values(buffer.allFrames(webProgress.DOMWindow || content))) - frame.document.dactylFocusAllowed = false; + if (webProgress.DOMWindow && uri) { + statusline.updateProgress(webProgress.DOMWindow); + + let oldURI = webProgress.document.dactylURI; + if (webProgress.document.dactylLoadIdx === webProgress.loadedTransIndex + || !oldURI || uri.spec.replace(/#.*/, "") !== oldURI.replace(/#.*/, "")) + for (let frame in values(buffer.allFrames(webProgress.DOMWindow))) + frame.document.dactylFocusAllowed = false; + webProgress.document.dactylURI = uri.spec; + webProgress.document.dactylLoadIdx = webProgress.loadedTransIndex; + } // Workaround for bugs 591425 and 606877, dactyl bug #81 let collapse = uri && uri.scheme === "dactyl" && webProgress.isLoadingDocument; diff --git a/common/content/events.js b/common/content/events.js index f61768b4..91959680 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -996,6 +996,7 @@ var Events = Module("events", { onMouseDown: function onMouseDown(event) { let elem = event.target; let win = elem.ownerDocument && elem.ownerDocument.defaultView || elem; + for (; win; win = win != win.parent && win.parent) win.document.dactylFocusAllowed = true; }, diff --git a/common/modules/util.jsm b/common/modules/util.jsm index 8aca002c..b669dd1b 100644 --- a/common/modules/util.jsm +++ b/common/modules/util.jsm @@ -796,7 +796,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]), * @returns {nsIURI} */ // FIXME: createURI needed too? - newURI: function (uri, charset, base) services.io.newURI(uri.replace(/.* -> /, ""), charset, base), + newURI: function (uri, charset, base) services.io.newURI(String.replace(uri, /.* -> /, ""), charset, base), /** * Pretty print a JavaScript object. Use HTML markup to color certain items -- cgit v1.2.3