gecko-dev/toolkit/content/macWindowMenu.js
Gijs Kruitbosch 36b73b53b9 Bug 1425363 - use JS instead of the windowds data source for the mac window menu, r=bgrins,spohl
MozReview-Commit-ID: 2qcRkFLjOeu

--HG--
extra : rebase_source : 9adc3723df30c292490e522030f71c03f4add695
2017-12-14 21:35:53 -06:00

45 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.document.commandDispatcher.focusedWindow.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();
}