mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-19 21:27:59 +01:00
Fix key event stringification letter-case issue for non-keypress events. Closes issue #258.
This commit is contained in:
@@ -387,19 +387,24 @@ var Events = Module("events", {
|
|||||||
this._key_code = {};
|
this._key_code = {};
|
||||||
|
|
||||||
for (let list in values(this._keyTable))
|
for (let list in values(this._keyTable))
|
||||||
for (let v in values(list))
|
for (let v in values(list)) {
|
||||||
|
if (v.length == 1)
|
||||||
|
v = v.toLowerCase();
|
||||||
this._key_key[v.toLowerCase()] = v;
|
this._key_key[v.toLowerCase()] = v;
|
||||||
|
}
|
||||||
|
|
||||||
for (let [k, v] in Iterator(KeyEvent)) {
|
for (let [k, v] in Iterator(KeyEvent)) {
|
||||||
k = k.substr(7).toLowerCase();
|
k = k.substr(7).toLowerCase();
|
||||||
let names = [k.replace(/(^|_)(.)/g, function (m, n1, n2) n2.toUpperCase())
|
let names = [k.replace(/(^|_)(.)/g, function (m, n1, n2) n2.toUpperCase())
|
||||||
.replace(/^NUMPAD/, "k")];
|
.replace(/^NUMPAD/, "k")];
|
||||||
|
|
||||||
|
if (names[0].length == 1)
|
||||||
|
names[0] = names[0].toLowerCase();
|
||||||
|
|
||||||
if (k in this._keyTable)
|
if (k in this._keyTable)
|
||||||
names = this._keyTable[k];
|
names = this._keyTable[k];
|
||||||
this._code_key[v] = names[0];
|
this._code_key[v] = names[0];
|
||||||
for (let [, name] in Iterator(names)) {
|
for (let [, name] in Iterator(names)) {
|
||||||
if (name.length == 1)
|
|
||||||
name = name.toLowerCase();
|
|
||||||
this._key_key[name.toLowerCase()] = name;
|
this._key_key[name.toLowerCase()] = name;
|
||||||
this._key_code[name.toLowerCase()] = v;
|
this._key_code[name.toLowerCase()] = v;
|
||||||
}
|
}
|
||||||
@@ -1185,6 +1190,9 @@ var Events = Module("events", {
|
|||||||
else if (!event.isMacro && !event.noremap && events.shouldPass(event))
|
else if (!event.isMacro && !event.noremap && events.shouldPass(event))
|
||||||
ignore = true;
|
ignore = true;
|
||||||
|
|
||||||
|
events.dbg("ON KEYPRESS " + key + " ignore: " + ignore,
|
||||||
|
event.originalTarget instanceof Element ? event.originalTarget : String(event.originalTarget));
|
||||||
|
|
||||||
if (ignore)
|
if (ignore)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -1231,17 +1239,20 @@ var Events = Module("events", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
keyup: function onKeyUp(event) {
|
keyup: function onKeyUp(event) {
|
||||||
// Prevent certain sites from transferring focus to an input box
|
this.keyEvents.push(event);
|
||||||
// before we get a chance to process our key bindings on the
|
|
||||||
// "keypress" event.
|
|
||||||
|
|
||||||
if (modes.main == modes.PASS_THROUGH ||
|
let pass = modes.main == modes.PASS_THROUGH ||
|
||||||
modes.main == modes.QUOTE
|
modes.main == modes.QUOTE
|
||||||
&& modes.getStack(1).main !== modes.PASS_THROUGH
|
&& modes.getStack(1).main !== modes.PASS_THROUGH
|
||||||
&& !events.shouldPass(event) ||
|
&& !this.shouldPass(event) ||
|
||||||
!modes.passThrough && events.shouldPass(event))
|
!modes.passThrough && this.shouldPass(event);
|
||||||
this.keyEvents.push(event);
|
|
||||||
else if (!Events.isInputElement(dactyl.focusedElement))
|
events.dbg("ON " + event.type.toUpperCase() + " " + this.toString(event) + " pass: " + pass);
|
||||||
|
|
||||||
|
// Prevents certain sites from transferring focus to an input box
|
||||||
|
// before we get a chance to process our key bindings on the
|
||||||
|
// "keypress" event.
|
||||||
|
if (!pass && !Events.isInputElement(dactyl.focusedElement))
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
},
|
},
|
||||||
keydown: function onKeyDown(event) {
|
keydown: function onKeyDown(event) {
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ var Modes = Module("modes", {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.addMode("EMBED", {
|
this.addMode("EMBED", {
|
||||||
input: true,
|
|
||||||
description: "Active when an <embed> or <object> element is focused",
|
description: "Active when an <embed> or <object> element is focused",
|
||||||
|
input: true,
|
||||||
ownsFocus: true,
|
ownsFocus: true,
|
||||||
passthrough: true
|
passthrough: true
|
||||||
});
|
});
|
||||||
@@ -135,6 +135,7 @@ var Modes = Module("modes", {
|
|||||||
description: "All keys but <C-v> are ignored by " + config.appName,
|
description: "All keys but <C-v> are ignored by " + config.appName,
|
||||||
bases: [this.BASE],
|
bases: [this.BASE],
|
||||||
hidden: true,
|
hidden: true,
|
||||||
|
input: true,
|
||||||
passthrough: true
|
passthrough: true
|
||||||
});
|
});
|
||||||
this.addMode("QUOTE", {
|
this.addMode("QUOTE", {
|
||||||
|
|||||||
Reference in New Issue
Block a user