scripts/minimizeall: Try to preserve last active window

Windows in workspace.clientList() are sorted in the map order. This
means that the minimize all script will try to activate the last mapped
window when unminimizing windows, which is a bit annoying.

This change ensures that the minimize all script doesn't activate wrong
window by minimizing and unminimizing windows in the stacking order.
It's not a bullet-proof solution though, but it should produce good
enough results.
master
Vlad Zahorodnii 3 years ago
parent 89067ff9db
commit 22b7ac02b4

@ -30,6 +30,16 @@ function minimizeAllWindows() {
relevantClients.push(allClients[i]);
}
// Try to preserve last active window by sorting windows.
relevantClients.sort((a, b) => {
if (a.active) {
return 1;
} else if (b.active) {
return -1;
}
return a.stackingOrder - b.stackingOrder;
});
for (var i = 0; i < relevantClients.length; ++i) {
var wasMinimizedByScript = relevantClients[i].minimizedByScript;
delete relevantClients[i].minimizedByScript;

Loading…
Cancel
Save