Bug 454805 - Glitchy maximize animation: isMaximized() returned true before the window has completed the maximize animation
Summary: Glitchy maximize animation: isMaximized() returned true before the window has...
Status: CONFIRMED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-window-management (show other bugs)
Version: 5.24.90
Platform: Other Linux
: NOR minor
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-06-03 15:41 UTC by Paul McAuley
Modified: 2022-06-03 17:57 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Video showing glitchy maximize animation with Breeze window decoration, normal borders (1.05 MB, video/mp4)
2022-06-03 15:41 UTC, Paul McAuley
Details
Still from maximize_animation_glitch_breeze_with_borders.mp4 illustrating gap (574.28 KB, image/png)
2022-06-03 15:52 UTC, Paul McAuley
Details
Video showing glitchy maximize animation with ClassiK window decoration (2.30 MB, video/mp4)
2022-06-03 15:57 UTC, Paul McAuley
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Paul McAuley 2022-06-03 15:41:21 UTC
Created attachment 149434 [details]
Video showing glitchy maximize animation with Breeze window decoration, normal borders

This is an animation glitch which has existed a few years now (in both X11 and Wayland), and have been meaning to report and make videos of for some time.

The problem is that the window maximize animation is glitchy. This is because the window titlebar will appear in the maximized state before the maximize animation has been completed. I assume the client->isMaximized() function is returning true to the window decoration before the maximize animation is complete.

In the attached maximize_animation_glitch_breeze_with_borders.mp4 you can see that when maximize is clicked, the titlebar instantly transforms into the maximized state, losing its rounded corners and losing the window borders before the animation has even started. The expected behaviour would be for these things to change only after the maximize animation has completed.

The restore animation seems to work fine.

Operating System: openSUSE Leap 15.3
KDE Plasma Version: 5.24.90
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.2
Kernel Version: 5.3.18-150300.59.68-preempt (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-7700HQ CPU @ 2.80GHz
Memory: 31.2 GiB of RAM
Graphics Processor: Mesa Intel® HD Graphics 630
Manufacturer: Dell Inc.
Product Name: XPS 15 9560
Comment 1 Paul McAuley 2022-06-03 15:52:50 UTC
Created attachment 149435 [details]
Still from maximize_animation_glitch_breeze_with_borders.mp4 illustrating gap

Here is also a still from 1s into the previous video, showing the gap created by removing the window border before the maximize animation completes.
Comment 2 Paul McAuley 2022-06-03 15:57:45 UTC
Created attachment 149436 [details]
Video showing glitchy maximize animation with ClassiK window decoration

Here is another video of the glitchy maximize animation with my ClassiK window decoration (https://github.com/paulmcauley/classik). In this decoration, by default, the maximized titlebar has a smaller height than a non-maximized titlebar. This causes a noticeable tear below the titlebar at the start of the animation.