mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-01-06 09:44:13 +01:00
Merge testing.
--HG-- rename : common/content/base.js => common/modules/base.jsm rename : common/content/services.js => common/modules/services.jsm rename : common/content/style.js => common/modules/styles.jsm rename : common/content/template.js => common/modules/template.jsm rename : common/content/util.js => common/modules/util.jsm
This commit is contained in:
@@ -12,8 +12,6 @@
|
||||
* @instance events
|
||||
*/
|
||||
const Events = Module("events", {
|
||||
requires: ["autocommands", "config"],
|
||||
|
||||
init: function () {
|
||||
const self = this;
|
||||
|
||||
@@ -737,12 +735,10 @@ const Events = Module("events", {
|
||||
|
||||
// TODO: Merge with onFocusChange
|
||||
onFocus: function (event) {
|
||||
function hasHTMLDocument(win) win && win.document && win.document instanceof HTMLDocument
|
||||
|
||||
let elem = event.originalTarget;
|
||||
let win = elem.ownerDocument && elem.ownerDocument.defaultView || elem;
|
||||
|
||||
if (hasHTMLDocument(win) && !buffer.focusAllowed(win)
|
||||
if (Events.isContentNode(elem) && !buffer.focusAllowed(win)
|
||||
&& isinstance(elem, [HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement]))
|
||||
elem.blur();
|
||||
},
|
||||
@@ -1107,6 +1103,13 @@ const Events = Module("events", {
|
||||
editableInputs: set(["date", "datetime", "datetime-local", "email", "file",
|
||||
"month", "number", "password", "range", "search",
|
||||
"tel", "text", "time", "url", "week"]),
|
||||
isContentNode: function (node) {
|
||||
let win = (node.ownerDocument || node).defaultView;
|
||||
for (; win; win = win.parent != win && win.parent)
|
||||
if (win == window.content)
|
||||
return true;
|
||||
return false;
|
||||
},
|
||||
isInputElemFocused: function () {
|
||||
let elem = dactyl.focus;
|
||||
return elem instanceof HTMLInputElement && set.has(Events.editableInputs, elem.type) ||
|
||||
|
||||
Reference in New Issue
Block a user