This commit is contained in:
Peter Fajdiga
2025-11-30 11:10:51 +01:00
parent 679d1d488c
commit d68494d257

View File

@@ -7,22 +7,40 @@ function initWorkspaceSignalHandlers(world: World, focusPasser: FocusPassing.Pas
});
});
manager.connect(Workspace.windowRemoved, (kwinClient: KwinClient) => {
world.do((clientManager, desktopManager) => {
clientManager.removeClient(kwinClient, FocusPassing.Type.Immediate);
});
});
manager.connect(Workspace.windowActivated, (kwinClient: KwinClient|null) => {
if (kwinClient === null) {
focusPasser.activate();
} else {
focusPasser.clearIfDifferent(kwinClient);
world.do((clientManager, desktopManager) => {
clientManager.onClientFocused(kwinClient);
});
}
});
new SignalGrouping.Group([
new SignalGrouping.Handler(
[Workspace.windowRemoved, Workspace.windowActivated] as const,
(windowRemovedArgs, windowActivatedArgs) => {
const kwinClient = windowRemovedArgs[0];
world.do((clientManager, desktopManager) => {
clientManager.removeClient(kwinClient, FocusPassing.Type.Immediate);
});
},
),
new SignalGrouping.Handler(
[Workspace.windowRemoved],
(windowRemovedArgs) => {
const kwinClient = windowRemovedArgs[0];
world.do((clientManager, desktopManager) => {
clientManager.removeClient(kwinClient, FocusPassing.Type.Immediate);
});
},
),
new SignalGrouping.Handler(
[Workspace.windowActivated],
(windowActivatedArgs) => {
const kwinClient = windowActivatedArgs[0];
if (kwinClient === null) {
focusPasser.activate();
} else {
focusPasser.clearIfDifferent(kwinClient);
world.do((clientManager, desktopManager) => {
clientManager.onClientFocused(kwinClient);
});
}
},
),
]).connect(manager);
manager.connect(Workspace.currentDesktopChanged, () => {
world.do(() => {}); // re-arrange desktop