diff --git a/src/lib/world/clientState/Tiled.ts b/src/lib/world/clientState/Tiled.ts index 02a3064..db11d43 100644 --- a/src/lib/world/clientState/Tiled.ts +++ b/src/lib/world/clientState/Tiled.ts @@ -106,7 +106,7 @@ namespace ClientState { } }); - let externalFrameGeometryChangedRateLimiter = new RateLimiter(2, Tiled.maxExternalFrameGeometryChangedIntervalMs); + let externalFrameGeometryChangedRateLimiter = new RateLimiter(4, Tiled.maxExternalFrameGeometryChangedIntervalMs); manager.connect(kwinClient.frameGeometryChanged, (oldGeometry: QmlRect) => { // on Wayland, this fires after `tileChanged` if (kwinClient.tile !== null) { diff --git a/src/tests/flows/externalResize.ts b/src/tests/flows/externalResize.ts index c1845a5..fcfc5b0 100644 --- a/src/tests/flows/externalResize.ts +++ b/src/tests/flows/externalResize.ts @@ -25,6 +25,12 @@ tests.register("External resize", 1, () => { client.frameGeometry = getClientDesiredFrame(120); Assert.equalRects(client.frameGeometry, getTiledFrame(120), { message: "We should re-arrange the window, respecting its new desired width" }); + client.frameGeometry = getClientDesiredFrame(130); + Assert.equalRects(client.frameGeometry, getTiledFrame(130), { message: "We should re-arrange the window, respecting its new desired width" }); + + client.frameGeometry = getClientDesiredFrame(140); + Assert.equalRects(client.frameGeometry, getTiledFrame(140), { message: "We should re-arrange the window, respecting its new desired width" }); + client.frameGeometry = getClientDesiredFrame(200); Assert.equalRects(client.frameGeometry, getClientDesiredFrame(200), { message: "We should give up and let the client have its desired frame" }); }