From 02db31266b4d2ae2028135e8ebb0256790b91f5f Mon Sep 17 00:00:00 2001 From: Peter Fajdiga Date: Sun, 10 Mar 2024 15:52:22 +0100 Subject: [PATCH] ClientWrapper: don't try to maximize/fullscreenify unsupporting windows --- src/extern/kwin.d.ts | 2 ++ src/world/ClientWrapper.ts | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/extern/kwin.d.ts b/src/extern/kwin.d.ts index 60ef953..3eca53d 100644 --- a/src/extern/kwin.d.ts +++ b/src/extern/kwin.d.ts @@ -55,6 +55,8 @@ interface KwinClient { readonly move: boolean; readonly resize: boolean; readonly resizeable: boolean; + readonly fullScreenable: boolean; + readonly maximizable: boolean; readonly output: Output; readonly resourceClass: QByteArray; readonly dock: boolean; diff --git a/src/world/ClientWrapper.ts b/src/world/ClientWrapper.ts index c9ffe31..7d73568 100644 --- a/src/world/ClientWrapper.ts +++ b/src/world/ClientWrapper.ts @@ -80,6 +80,10 @@ class ClientWrapper { } public setMaximize(horizontally: boolean, vertically: boolean) { + if (!this.kwinClient.maximizable) { + return; + } + if (this.maximizedMode === undefined) { if (horizontally && vertically) { this.maximizedMode = MaximizedMode.Maximized; @@ -91,12 +95,17 @@ class ClientWrapper { this.maximizedMode = MaximizedMode.Unmaximized; } } + this.manipulatingGeometry.do(() => { this.kwinClient.setMaximize(vertically, horizontally); }); } public setFullScreen(fullScreen: boolean) { + if (!this.kwinClient.fullScreenable) { + return; + } + this.manipulatingGeometry.do(() => { this.kwinClient.fullScreen = fullScreen; });