From 46bf69781fb2ea4dcd673d6cf1085088139b64e4 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Sun, 21 Nov 2010 12:56:32 -0500 Subject: [PATCH] Fix problem with events.dispatch. Closes issue #145. --- common/content/events.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/common/content/events.js b/common/content/events.js index 67fb5c3c..dedaaa21 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -358,10 +358,17 @@ const Events = Module("events", { */ dispatch: Class.memoize(function () util.haveGecko("2b") - ? function (target, event) // This causes a crash on Gecko<2.0, it seems. - (target.ownerDocument || target.document || target).defaultView - .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils) - .dispatchDOMEventViaPresShell(target, event, true) + ? function (target, event) { + if (target instanceof Window) + target = target.document; + if (target instanceof Document) + target = target.documentElement; + dactyl.assert(target); + // This causes a crash on Gecko<2.0, it seems. + target.ownerDocument.defaultView + .QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils) + .dispatchDOMEventViaPresShell(target, event, true) + } : function (target, event) target.dispatchEvent(event)), /**