[MYPAL] Prevent overlapping modal prompts and preserve prompt order.
parent
4e76e90d29
commit
95de016256
|
@ -402,11 +402,18 @@
|
||||||
let promptBox = {
|
let promptBox = {
|
||||||
appendPrompt : function(args, onCloseCallback) {
|
appendPrompt : function(args, onCloseCallback) {
|
||||||
let newPrompt = document.createElementNS(XUL_NS, "tabmodalprompt");
|
let newPrompt = document.createElementNS(XUL_NS, "tabmodalprompt");
|
||||||
stack.appendChild(newPrompt);
|
// stack.appendChild(newPrompt);
|
||||||
|
stack.insertBefore(newPrompt, browser.nextSibling);
|
||||||
browser.setAttribute("tabmodalPromptShowing", true);
|
browser.setAttribute("tabmodalPromptShowing", true);
|
||||||
|
|
||||||
newPrompt.clientTop; // style flush to assure binding is attached
|
newPrompt.clientTop; // style flush to assure binding is attached
|
||||||
|
|
||||||
|
let prompts = this.listPrompts();
|
||||||
|
if (prompts.length > 1) {
|
||||||
|
// Let's hide ourself behind the current prompt.
|
||||||
|
newPrompt.hidden = true;
|
||||||
|
}
|
||||||
|
|
||||||
let tab = self._getTabForContentWindow(browser.contentWindow);
|
let tab = self._getTabForContentWindow(browser.contentWindow);
|
||||||
newPrompt.init(args, tab, onCloseCallback);
|
newPrompt.init(args, tab, onCloseCallback);
|
||||||
return newPrompt;
|
return newPrompt;
|
||||||
|
@ -418,6 +425,7 @@
|
||||||
let prompts = this.listPrompts();
|
let prompts = this.listPrompts();
|
||||||
if (prompts.length) {
|
if (prompts.length) {
|
||||||
let prompt = prompts[prompts.length - 1];
|
let prompt = prompts[prompts.length - 1];
|
||||||
|
prompt.hidden = false;
|
||||||
prompt.Dialog.setDefaultFocus();
|
prompt.Dialog.setDefaultFocus();
|
||||||
} else {
|
} else {
|
||||||
browser.removeAttribute("tabmodalPromptShowing");
|
browser.removeAttribute("tabmodalPromptShowing");
|
||||||
|
|
Loading…
Reference in New Issue