TiledMinimized: support un-minimization
This commit is contained in:
@@ -76,7 +76,10 @@ class ClientManager {
|
||||
return;
|
||||
}
|
||||
if (client.stateManager.getState() instanceof ClientState.Tiled) {
|
||||
client.stateManager.setState(() => new ClientState.TiledMinimized(), kwinClient === this.lastFocusedClient);
|
||||
client.stateManager.setState(
|
||||
() => new ClientState.TiledMinimized(this.world, client),
|
||||
kwinClient === this.lastFocusedClient,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,12 +56,9 @@ namespace ClientState {
|
||||
})
|
||||
|
||||
manager.connect(kwinClient.minimizedChanged, () => {
|
||||
console.assert(kwinClient.minimized);
|
||||
world.do((clientManager, desktopManager) => {
|
||||
if (kwinClient.minimized) {
|
||||
clientManager.minimizeClient(kwinClient);
|
||||
} else {
|
||||
clientManager.unminimizeClient(kwinClient); // TODO: move to TiledMinimized
|
||||
}
|
||||
clientManager.minimizeClient(kwinClient);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,26 @@
|
||||
namespace ClientState {
|
||||
export class TiledMinimized implements State {
|
||||
public destroy(passFocus: boolean) {}
|
||||
private readonly signalManager: SignalManager;
|
||||
|
||||
constructor(world: World, client: ClientWrapper) {
|
||||
this.signalManager = TiledMinimized.initSignalManager(world, client);
|
||||
}
|
||||
|
||||
public destroy(passFocus: boolean) {
|
||||
this.signalManager.destroy();
|
||||
}
|
||||
|
||||
private static initSignalManager(world: World, client: ClientWrapper) {
|
||||
const manager = new SignalManager();
|
||||
|
||||
manager.connect(client.kwinClient.minimizedChanged, () => {
|
||||
console.assert(!client.kwinClient.minimized);
|
||||
world.do((clientManager, desktopManager) => {
|
||||
clientManager.unminimizeClient(client.kwinClient);
|
||||
});
|
||||
});
|
||||
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user