1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 15:37:59 +01:00

Fix pressing <Space> in content-editable windows. Closes issue #not-in-the-tracker-for-some-reason.

This commit is contained in:
Kris Maglione
2011-02-12 12:15:02 -05:00
parent e7529166df
commit 127ed4cfc2
5 changed files with 17 additions and 11 deletions

View File

@@ -221,7 +221,9 @@ var Buffer = Module("buffer", {
*/
get lastInputField() {
let field = this.localStore.lastInputField && this.localStore.lastInputField.get();
return field && field.ownerDocument == field.ownerDocument.defaultView.document ? field : null;
let doc = field && field.ownerDocument;
let win = doc && doc.defaultView;
return win && doc === win.document ? field : null;
},
set lastInputField(value) { this.localStore.lastInputField = value && Cu.getWeakReference(value); },

View File

@@ -1368,6 +1368,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
dactyl.echoerr(template.linkifyHelp(error.message));
else
dactyl.beep();
util.reportError(error);
return;
}
if (error.result == Cr.NS_BINDING_ABORTED)

View File

@@ -375,19 +375,20 @@ var Editor = Module("editor", {
* @see Abbreviation#expand
*/
expandAbbreviation: function (mode) {
let editor = Editor.getEditor();
if (!(editor && editor.value))
let elem = dactyl.focusedElement;
if (!(elem && elem.value))
return;
let text = editor.value;
let start = editor.selectionStart;
let end = editor.selectionEnd;
let text = elem.value;
let start = elem.selectionStart;
let end = elem.selectionEnd;
let abbrev = abbreviations.match(mode, text.substring(0, start).replace(/.*\s/g, ""));
if (abbrev) {
let len = abbrev.lhs.length;
let rhs = abbrev.expand(editor);
editor.value = text.substring(0, start - len) + rhs + text.substring(start);
editor.selectionStart = start - len + rhs.length;
editor.selectionEnd = end - len + rhs.length;
let rhs = abbrev.expand(elem);
elem.value = text.substring(0, start - len) + rhs + text.substring(start);
elem.selectionStart = start - len + rhs.length;
elem.selectionEnd = end - len + rhs.length;
}
},
}, {

View File

@@ -1277,7 +1277,8 @@ var Events = Module("events", {
return;
}
if (elem instanceof HTMLTextAreaElement || (elem && util.computedStyle(elem).MozUserModify == "read-write")
if (elem instanceof HTMLTextAreaElement
|| elem instanceof Element && util.computedStyle(elem).MozUserModify === "read-write"
|| elem == null && win && Editor.getEditor(win)) {
if (modes.main == modes.VISUAL && elem.selectionEnd == elem.selectionStart)

View File

@@ -574,6 +574,7 @@ var Styles = Module("Styles", {
}
},
{
bang: true,
completer: function (context, args) {
let compl = [];
let sheet = args["-group"].get(args["-name"]);