Bug 510197 - Plasma Virtual Keyboard + Sliding Popups effect leaves artifacts on the panel
Summary: Plasma Virtual Keyboard + Sliding Popups effect leaves artifacts on the panel
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (other bugs)
Version First Reported In: 6.5.80
Platform: Other Linux
: HI normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 509616 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-10-03 12:42 UTC by David Edmundson
Modified: 2025-10-07 23:02 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Edmundson 2025-10-03 12:42:55 UTC
Opening and closing the Plasma virtual keyboard leaves artifacts on the panel; like bad damage tracking.

This only occurs when the sliding popup effect is enabled.
I do not see it for other things using sliding popups - so maybe the keyboard is retargetting itself or something.
Comment 1 David Edmundson 2025-10-03 12:43:31 UTC
Marking high as it will affect the reputation of plasma-keyboard which will have a preview release before Plasma 6.6
Comment 2 David Edmundson 2025-10-04 22:31:09 UTC
*** Bug 509616 has been marked as a duplicate of this bug. ***
Comment 3 David Edmundson 2025-10-04 22:34:47 UTC
void SlidingPopupsEffect::postPaintWindow(EffectWindow *w)
{
    auto animationIt = m_animations.find(w);
    if (animationIt != m_animations.end()) {
        effects->addRepaint(w->expandedGeometry());


I would expect this to need to take the translation of the slide into affect. 
Though if it is that, I don't see why it's unique to the virtual keyboard.
Comment 4 David Edmundson 2025-10-06 10:30:32 UTC
I just ported SlidingPopups to a build off AnimationEffect and the bug went away. 
However just as I finished, I figured out we probably don't use AnimationEffect because there's some logic in here to also clip to the screen geometry.  Will have to do a manual fix.
Comment 5 Bug Janitor Service 2025-10-06 12:21:04 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8196
Comment 6 David Edmundson 2025-10-07 21:59:50 UTC
Git commit a17800d4adbb5c1a1c2357b740deadd8d01bf92c by David Edmundson.
Committed on 07/10/2025 at 21:13.
Pushed by davidedmundson into branch 'master'.

plugins/slidingpopups: Adjust repaint region to match animation

When a window moves, we need to repaint the area the window was in on
the next frame.

The current code repaints the final position of a window which works
enough when it's touching a screen edge, but not for cases like the
onscreen keyboard that goes over the panel.

M  +30   -11   src/plugins/slidingpopups/slidingpopups.cpp
M  +2    -0    src/plugins/slidingpopups/slidingpopups.h

https://invent.kde.org/plasma/kwin/-/commit/a17800d4adbb5c1a1c2357b740deadd8d01bf92c
Comment 7 Nate Graham 2025-10-07 23:02:27 UTC
Git commit fef062cbfe4197ee9460f3491131134962ceaa27 by Nate Graham.
Committed on 07/10/2025 at 22:27.
Pushed by ngraham into branch 'Plasma/6.5'.

plugins/slidingpopups: Adjust repaint region to match animation

When a window moves, we need to repaint the area the window was in on
the next frame.

The current code repaints the final position of a window which works
enough when it's touching a screen edge, but not for cases like the
onscreen keyboard that goes over the panel.


(cherry picked from commit a17800d4adbb5c1a1c2357b740deadd8d01bf92c)

a17800d4 plugins/slidingpopups: Adjust repaint region to match animation

Co-authored-by: David Edmundson <kde@davidedmundson.co.uk>

M  +30   -11   src/plugins/slidingpopups/slidingpopups.cpp
M  +2    -0    src/plugins/slidingpopups/slidingpopups.h

https://invent.kde.org/plasma/kwin/-/commit/fef062cbfe4197ee9460f3491131134962ceaa27