fune/toolkit/content/macWindowMenu.js
Brian Grinstead d47332f45b Bug 1454440 - Focus the window directly instead of using commandDispatcher in the mac Window menu;r=Gijs
This fixes the Window menu with top-level HTML windows, which don't have `commandDispatcher`
defined on the document.

MozReview-Commit-ID: I7T1LrMf8Ik

--HG--
extra : rebase_source : e2ca69690cfa11716a17dc0ce268a7c4a4aa7e2b
2018-04-16 11:05:01 -07:00

44 lines
1.3 KiB
JavaScript

// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function macWindowMenuDidShow() {
let windows = Services.wm.getEnumerator("");
let frag = document.createDocumentFragment();
while (windows.hasMoreElements()) {
let win = windows.getNext();
if (win.document.documentElement.getAttribute("inwindowmenu") == "false") {
continue;
}
let item = document.createElement("menuitem");
item.setAttribute("label", win.document.title);
if (win == window) {
item.setAttribute("checked", "true");
}
item.addEventListener("command", () => {
if (win.windowState == window.STATE_MINIMIZED) {
win.restore();
}
win.focus();
});
frag.appendChild(item);
}
document.getElementById("windowPopup").appendChild(frag);
}
function macWindowMenuDidHide() {
let sep = document.getElementById("sep-window-list");
// Clear old items
while (sep.nextElementSibling) {
sep.nextElementSibling.remove();
}
}
function zoomWindow() {
if (window.windowState == window.STATE_NORMAL)
window.maximize();
else
window.restore();
}