un-maximize when swithing to another window in the same column (issue 93)

This commit is contained in:
Peter Fajdiga
2025-04-04 13:59:39 +02:00
parent 7e1517bbcb
commit 7ef0c60cb8
3 changed files with 36 additions and 6 deletions

View File

@@ -297,13 +297,13 @@ class Column {
}
public onWindowFocused(window: Window) {
this.grid.onColumnFocused(this);
this.grid.onColumnFocused(this, window);
this.focusTaker = window;
}
public restoreToTiled() {
public restoreToTiled(focusedWindow: Window) {
const lastFocusedWindow = this.getFocusTaker();
if (lastFocusedWindow !== null) {
if (lastFocusedWindow !== null && lastFocusedWindow !== focusedWindow) {
lastFocusedWindow.restoreToTiled();
}
}

View File

@@ -184,10 +184,10 @@ class Grid {
}
}
public onColumnFocused(column: Column) {
public onColumnFocused(column: Column, window: Window) {
const lastFocusedColumn = this.getLastFocusedColumn();
if (lastFocusedColumn !== null && lastFocusedColumn !== column) {
lastFocusedColumn.restoreToTiled();
if (lastFocusedColumn !== null) {
lastFocusedColumn.restoreToTiled(window);
}
this.lastFocusedColumn = column;
this.desktop.scrollToColumn(column, false);

View File

@@ -143,6 +143,24 @@
() => qtMock.fireShortcut("karousel-focus-end"),
);
assertWindowed(config, clients);
runOneOf(
() => clients[2].fullScreen = true,
() => clients[2].setMaximize(true, true),
);
assertFullScreenOrMaximized(clients);
runOneOf(
() => workspaceMock.activeWindow = clients[1],
() => qtMock.fireShortcut("karousel-focus-up"),
);
assertWindowed(config, clients);
runOneOf(
() => workspaceMock.activeWindow = clients[2],
() => qtMock.fireShortcut("karousel-focus-down"),
);
assertWindowed(config, clients);
});
tests.register("Re-maximize enabled " + suffix, 100, () => {
@@ -176,6 +194,18 @@
() => qtMock.fireShortcut("karousel-focus-end"),
);
assertFullScreenOrMaximized(clients);
runOneOf(
() => workspaceMock.activeWindow = clients[1],
() => qtMock.fireShortcut("karousel-focus-up"),
);
assertWindowed(config, clients);
runOneOf(
() => workspaceMock.activeWindow = clients[2],
() => qtMock.fireShortcut("karousel-focus-down"),
);
assertFullScreenOrMaximized(clients);
});
}