1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-21 16:47:59 +01:00

Get rid of Editor.isInputElementFocused. Move Editor.isContentNode to editor.isContentNode.

This commit is contained in:
Kris Maglione
2010-12-31 13:39:14 -05:00
parent 8f4411f9af
commit 6f20c5aac2
2 changed files with 14 additions and 17 deletions

View File

@@ -1629,7 +1629,7 @@ var Buffer = Module("buffer", {
function (args) { function (args) {
let elem = buffer.lastInputField; let elem = buffer.lastInputField;
if (args.count >= 1 || !elem || !Events.isContentNode(elem)) { if (args.count >= 1 || !elem || !events.isContentNode(elem)) {
let xpath = ["frame", "iframe", "input", "textarea[not(@disabled) and not(@readonly)]"]; let xpath = ["frame", "iframe", "input", "textarea[not(@disabled) and not(@readonly)]"];
let frames = buffer.allFrames(null, true); let frames = buffer.allFrames(null, true);

View File

@@ -637,6 +637,14 @@ var Events = Module("events", {
*/ */
isCancelKey: function (key) key == "<Esc>" || key == "<C-[>" || key == "<C-c>", isCancelKey: function (key) key == "<Esc>" || key == "<C-[>" || key == "<C-c>",
isContentNode: function isContentNode(node) {
let win = (node.ownerDocument || node).defaultView || node;
for (; win; win = win.parent != win && win.parent)
if (win == content)
return true;
return false;
},
/** /**
* Waits for the current buffer to successfully finish loading. Returns * Waits for the current buffer to successfully finish loading. Returns
* true for a successful page load otherwise false. * true for a successful page load otherwise false.
@@ -743,7 +751,7 @@ var Events = Module("events", {
if (elem instanceof Element) { if (elem instanceof Element) {
let win = elem.ownerDocument.defaultView; let win = elem.ownerDocument.defaultView;
if (Events.isContentNode(elem) && !buffer.focusAllowed(elem) if (events.isContentNode(elem) && !buffer.focusAllowed(elem)
&& !(services.focus.getLastFocusMethod(win) & 0x7000) && !(services.focus.getLastFocusMethod(win) & 0x7000)
&& isinstance(elem, [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement, Window])) { && isinstance(elem, [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement, Window])) {
if (elem.frameElement) if (elem.frameElement)
@@ -897,7 +905,7 @@ var Events = Module("events", {
mode = Modes.StackElement(event.dactylMode); mode = Modes.StackElement(event.dactylMode);
function shouldPass() function shouldPass()
(!dactyl.focusedElement || Events.isContentNode(dactyl.focusedElement)) && (!dactyl.focusedElement || events.isContentNode(dactyl.focusedElement)) &&
options.get("passkeys").has(events.toString(event)); options.get("passkeys").has(events.toString(event));
let input = this._input; let input = this._input;
@@ -971,7 +979,7 @@ var Events = Module("events", {
// "keypress" event. // "keypress" event.
function shouldPass() // FIXME. function shouldPass() // FIXME.
(!dactyl.focusedElement || Events.isContentNode(dactyl.focusedElement)) && (!dactyl.focusedElement || events.isContentNode(dactyl.focusedElement)) &&
options.get("passkeys").has(events.toString(event)); options.get("passkeys").has(events.toString(event));
if (modes.main == modes.PASS_THROUGH || if (modes.main == modes.PASS_THROUGH ||
@@ -981,7 +989,7 @@ var Events = Module("events", {
!modes.passThrough && shouldPass()) !modes.passThrough && shouldPass())
return; return;
if (!Events.isInputElementFocused()) if (!Events.isInputElement(dactyl.focusedElement))
event.stopPropagation(); event.stopPropagation();
}, },
@@ -1174,14 +1182,6 @@ var Events = Module("events", {
} }
}), }),
isContentNode: function isContentNode(node) {
let win = (node.ownerDocument || node).defaultView || node;
for (; win; win = win.parent != win && win.parent)
if (win == content)
return true;
return false;
},
isEscape: function isEscape(event) isEscape: function isEscape(event)
let (key = isString(event) ? event : events.toString(event)) let (key = isString(event) ? event : events.toString(event))
key === "<Esc>" || key === "<C-[>", key === "<Esc>" || key === "<C-[>",
@@ -1193,10 +1193,7 @@ var Events = Module("events", {
HTMLTextAreaElement, HTMLTextAreaElement,
Ci.nsIDOMXULTreeElement, Ci.nsIDOMXULTextBoxElement]) || Ci.nsIDOMXULTreeElement, Ci.nsIDOMXULTextBoxElement]) ||
elem instanceof Window && Editor.getEditor(elem); elem instanceof Window && Editor.getEditor(elem);
}, }
isInputElementFocused: function isInputElementFocused() this.isInputElement(dactyl.focusedElement)
}, { }, {
commands: function () { commands: function () {
commands.add(["delmac[ros]"], commands.add(["delmac[ros]"],