Bug 507208

Summary: Krohnkite Kwin script and Squash window minimize effect causes some areas of windows to not paint
Product: [Plasma] kwin Reporter: dramforever <dramforever>
Component: effects-variousAssignee: KWin default assignee <kwin-bugs-null>
Status: REPORTED ---    
Severity: minor CC: nate
Priority: NOR    
Version First Reported In: 6.4.2   
Target Milestone: ---   
Platform: NixOS   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description dramforever 2025-07-18 19:52:58 UTC
***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

Please remove this comment after reading and before submitting - thanks!
***

SUMMARY

Krohnkite 0.9.9.1: https://github.com/anametologin/krohnkite

When using Krohnkite for auto tiling, and the window size changes between before minimizing and unminimizing, the window doesn't draw correctly with parts missing

STEPS TO REPRODUCE
1. Enable Krohnkite with a tiling layout
2. Enable Animations (set to not "Instant"), set "Window minimize" to "Squash"
3. Start two windows. They should be tiled. Let's call them A and B arbitrarily.
4. Minimize A, B should expand to fill the screen
5. Minimize B
6. Unminimize A, it should expand to fill the screen

This can be reproduced with random applications like Konsole, Dolphin, Visual Studio Code.

OBSERVED RESULT

The window A appears normally

EXPECTED RESULT

Parts of the window are not drawn or flickering

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Operating System: NixOS 25.11
KDE Plasma Version: 6.4.2
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION

I can't screenshot this because that seems to force the windows to draw properly, but this reproduction steps works all the time for me.
Comment 1 dramforever 2025-07-18 19:57:31 UTC
I forgot to mention but this doesn't seem to occur with "Magic Lamp".

Apparently "Squash" is a JavaScript effect that runs an animation with just a cubic transition with Effect.Size, whereas "Magic Lamp" is written in C++ and renders every frame separately. That coincidentally means that "Squash" gets the window geometry once, and sets the animation to run to that geometry, whereas "Magic Lamp" gets it every time. This is also noticible if you slow the animation down.