mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-02-25 19:25:46 +01:00
Automagically hidden popup panels. This probably includes those horrible "door hanger" panels when the location bar is hidden.
This commit is contained in:
@@ -1036,12 +1036,8 @@ var Events = Module("events", {
|
|||||||
let elem = event.originalTarget;
|
let elem = event.originalTarget;
|
||||||
|
|
||||||
if (event.target instanceof Ci.nsIDOMXULTextBoxElement)
|
if (event.target instanceof Ci.nsIDOMXULTextBoxElement)
|
||||||
for (let e = elem; e instanceof Element; e = e.parentNode)
|
if (Events.isHidden(elem))
|
||||||
if (util.computedStyle(e).visibility !== "visible" ||
|
elem.blur();
|
||||||
e.boxObject && e.boxObject.height === 0) {
|
|
||||||
elem.blur();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
let win = (elem.ownerDocument || elem).defaultView || elem;
|
let win = (elem.ownerDocument || elem).defaultView || elem;
|
||||||
|
|
||||||
@@ -1233,7 +1229,11 @@ var Events = Module("events", {
|
|||||||
|
|
||||||
popupshown: function onPopupShown(event) {
|
popupshown: function onPopupShown(event) {
|
||||||
if (event.originalTarget.localName !== "tooltip" && event.originalTarget.id !== "dactyl-visualbell")
|
if (event.originalTarget.localName !== "tooltip" && event.originalTarget.id !== "dactyl-visualbell")
|
||||||
if (modes.main != modes.MENU)
|
if (Events.isHidden(event.originalTarget)) {
|
||||||
|
if (event.originalTarget.hidePopup)
|
||||||
|
event.originalTarget.hidePopup();
|
||||||
|
}
|
||||||
|
else if (modes.main != modes.MENU)
|
||||||
modes.push(modes.MENU);
|
modes.push(modes.MENU);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1353,6 +1353,14 @@ var Events = Module("events", {
|
|||||||
let (key = isString(event) ? event : events.toString(event))
|
let (key = isString(event) ? event : events.toString(event))
|
||||||
key === "<Esc>" || key === "<C-[>",
|
key === "<Esc>" || key === "<C-[>",
|
||||||
|
|
||||||
|
isHidden: function isHidden(elem) {
|
||||||
|
for (let e = elem; e instanceof Element; e = e.parentNode)
|
||||||
|
if (util.computedStyle(e).visibility !== "visible" ||
|
||||||
|
e.boxObject && e.boxObject.height === 0)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
isInputElement: function isInputElement(elem) {
|
isInputElement: function isInputElement(elem) {
|
||||||
return elem instanceof HTMLInputElement && set.has(util.editableInputs, elem.type) ||
|
return elem instanceof HTMLInputElement && set.has(util.editableInputs, elem.type) ||
|
||||||
isinstance(elem, [HTMLIsIndexElement, HTMLEmbedElement,
|
isinstance(elem, [HTMLIsIndexElement, HTMLEmbedElement,
|
||||||
|
|||||||
Reference in New Issue
Block a user