1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-03-05 10:15:45 +01:00

Fix key feeding issues with some sites. Fix bug in dactyl.generateHelp.

This commit is contained in:
Kris Maglione
2011-03-11 06:48:42 -05:00
parent ed00ac2584
commit 5e6b47009c
2 changed files with 13 additions and 5 deletions

View File

@@ -886,7 +886,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
data.push(" "); data.push(" ");
data.push(name); data.push(name);
data.push('="'); data.push('="');
data.push(<>{value}</>.toXMLString()); data.push(<>{value}</>.toXMLString().replace(/"/g, "&quot;"));
data.push('"'); data.push('"');
} }
if (node.localName in empty) if (node.localName in empty)

View File

@@ -642,8 +642,10 @@ var Events = Module("events", {
for (let [, evt_obj] in Iterator(events.fromString(keys))) { for (let [, evt_obj] in Iterator(events.fromString(keys))) {
let now = Date.now(); let now = Date.now();
for (let type in values(["keydown", "keyup", "keypress"])) { for (let type in values(["keydown", "keypress", "keyup"])) {
let evt = update({}, evt_obj, { type: type }); let evt = update({}, evt_obj, { type: type });
if (type !== "keypress" && !evt.keyCode)
evt.keyCode = evt._keyCode || 0;
if (isObject(noremap)) if (isObject(noremap))
update(evt, noremap); update(evt, noremap);
@@ -654,9 +656,12 @@ var Events = Module("events", {
evt.dactylSavedEvents = savedEvents; evt.dactylSavedEvents = savedEvents;
this.feedingEvent = evt; this.feedingEvent = evt;
let event = events.create(document.commandDispatcher.focusedWindow.document, type, evt); let doc = document.commandDispatcher.focusedWindow.document;
let event = events.create(doc, type, evt);
if (!evt_obj.dactylString && !evt_obj.dactylShift && !mode) if (!evt_obj.dactylString && !evt_obj.dactylShift && !mode)
events.dispatch(dactyl.focusedElement || buffer.focusedFrame, event, evt); events.dispatch(dactyl.focusedElement || doc.documentElement || doc.defaultView,
event, evt);
else if (type === "keypress") else if (type === "keypress")
events.events.keypress.call(events, event); events.events.keypress.call(events, event);
} }
@@ -855,6 +860,7 @@ var Events = Module("events", {
} }
evt_obj.charCode = keyname.charCodeAt(0); evt_obj.charCode = keyname.charCodeAt(0);
evt_obj._keyCode = this._key_code[keyname];
} }
else if (set.has(this._pseudoKeys, keyname)) { else if (set.has(this._pseudoKeys, keyname)) {
evt_obj.dactylString = "<" + this._key_key[keyname] + ">"; evt_obj.dactylString = "<" + this._key_key[keyname] + ">";
@@ -875,8 +881,10 @@ var Events = Module("events", {
continue; continue;
} }
} }
else // a simple key (no <...>) else {// a simple key (no <...>)
evt_obj.charCode = evt_str.charCodeAt(0); evt_obj.charCode = evt_str.charCodeAt(0);
evt_obj._keyCode = this._key_code[evt_str[0]];
}
// TODO: make a list of characters that need keyCode and charCode somewhere // TODO: make a list of characters that need keyCode and charCode somewhere
if (evt_obj.keyCode == 32 || evt_obj.charCode == 32) if (evt_obj.keyCode == 32 || evt_obj.charCode == 32)