From 465e133cf742669f1ba7e88dffeb3ecfc56b4075 Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Sun, 31 Jul 2011 12:45:05 -0400 Subject: [PATCH] Fix missing base mode in keydown/keyup blocking. Closes issue #615. --HG-- extra : rebase_source : d76a48e12e8a6f68a4adcb633008af786a4d826d --- common/content/events.js | 2 +- common/content/mappings.js | 2 +- common/content/modes.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common/content/events.js b/common/content/events.js index 5f42d22c..117d64b5 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -19,7 +19,7 @@ var ProcessorStack = Class("ProcessorStack", { events.dbg("STACK " + mode); let main = { __proto__: mode.main, params: mode.params }; - this.modes = array([mode.params.keyModes, main, mode.main.allBases]).flatten().compact(); + this.modes = array([mode.params.keyModes, main, mode.main.allBases.slice(1)]).flatten().compact(); if (builtin) hives = hives.filter(function (h) h.name === "builtin"); diff --git a/common/content/mappings.js b/common/content/mappings.js index 8253729b..4ee29e58 100644 --- a/common/content/mappings.js +++ b/common/content/mappings.js @@ -698,7 +698,7 @@ var Mappings = Module("mappings", { iterate: function (args, mainOnly) { let modes = [this.getMode(args)]; if (!mainOnly) - modes = modes.concat(modes[0].allBases); + modes = modes[0].allBases; let seen = {}; // Bloody hell. --Kris diff --git a/common/content/modes.js b/common/content/modes.js index 6f1d7dbd..c4988309 100644 --- a/common/content/modes.js +++ b/common/content/modes.js @@ -328,7 +328,7 @@ var Modes = Module("modes", { return; let msg = null; - if (options.get("showmode").getKey([this.main].concat(this.main.allBases), false)) + if (options.get("showmode").getKey(this.main.allBases, false)) msg = this._getModeMessage(); if (msg || loaded.commandline) @@ -504,10 +504,10 @@ var Modes = Module("modes", { displayName: Class.memoize(function () this.name.split("_").map(util.capitalize).join(" ")), isinstance: function isinstance(obj) - this === obj || this.allBases.indexOf(obj) >= 0 || callable(obj) && this instanceof obj, + this.allBases.indexOf(obj) >= 0 || callable(obj) && this instanceof obj, allBases: Class.memoize(function () { - let seen = {}, res = [], queue = this.bases.slice(); + let seen = {}, res = [], queue = [this].concat(this.bases); for (let mode in array.iterValues(queue)) if (!Set.add(seen, mode)) { res.push(mode);