author | Gijs Kruitbosch <gijskruitbosch@gmail.com> |
Mon, 18 Feb 2019 07:04:43 +0000 (2019-02-18) | |
changeset 459762 | 4f44987ada9476da27ebe098e583d1653e5e871f |
parent 459761 | 2877c6fff181509058d44f0c180ded7656eed334 |
child 459763 | 8ca888f573652270684dc7b85d1a796fbd4c5f0b |
push id | 35572 |
push user | cbrindusan@mozilla.com |
push date | Mon, 18 Feb 2019 21:43:34 +0000 (2019-02-18) |
treeherder | mozilla-central@c590fd06f7cb [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dao |
bugs | 1509847 |
milestone | 67.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/modules/BrowserWindowTracker.jsm +++ b/browser/modules/BrowserWindowTracker.jsm @@ -77,18 +77,25 @@ function _handleMessage(message) { let browser = message.target; if (message.name === "Browser:Init" && browser === browser.ownerGlobal.gBrowser.selectedBrowser) { _updateCurrentContentOuterWindowID(browser); } } function _trackWindowOrder(window) { - _trackedWindows.splice(window.windowState == window.STATE_MINIMIZED ? - _trackedWindows.length - 1 : 0, 0, window); + if (window.windowState == window.STATE_MINIMIZED) { + let firstMinimizedWindow = _trackedWindows.findIndex(w => w.windowState == w.STATE_MINIMIZED); + if (firstMinimizedWindow == -1) { + firstMinimizedWindow = _trackedWindows.length; + } + _trackedWindows.splice(firstMinimizedWindow, 0, window); + } else { + _trackedWindows.unshift(window); + } } function _untrackWindowOrder(window) { let idx = _trackedWindows.indexOf(window); if (idx >= 0) _trackedWindows.splice(idx, 1); } @@ -135,19 +142,19 @@ var WindowHelper = { _untrackWindowOrder(window); _trackWindowOrder(window); _updateCurrentContentOuterWindowID(window.gBrowser.selectedBrowser); }, onSizemodeChange(window) { if (window.windowState == window.STATE_MINIMIZED) { - // Make sure to have the minimized window at the end of the list. + // Make sure to have the minimized window behind unminimized windows. _untrackWindowOrder(window); - _trackedWindows.push(window); + _trackWindowOrder(window); } }, }; this.BrowserWindowTracker = { /** * Get the most recent browser window. *