https://bugs.kde.org/show_bug.cgi?id=351687

--- Comment #3 from bastimeyer...@gmail.com ---
I think I have found a fix for this issue.

In the DesktopGridEffect's prePaintScreen method, two additional bits are set
on the ScreenPrePaintData mask:
PAINT_SCREEN_TRANSFORMED and PAINT_SCREEN_BACKGROUND_FIRST
https://github.com/KDE/kwin/blob/v5.14.90/effects/desktopgrid/desktopgrid.cpp#L164

According to the scene header file, the whole screen will be painted if
PAINT_SCREEN_TRANSFORMED is set. PAINT_SCREEN_REGION on the other hand will
only paint a region of the screen.
https://github.com/KDE/kwin/blob/v5.14.90/scene.h#L116-L120

So in order to fix the issue of the overlaying tiles, I tried to replace
PAINT_SCREEN_TRANSFORMED with PAINT_SCREEN_REGION and rebuilt my disto's kwin
package with this change applied. This did indeed fix it, but another issue I
could observe was a bit of occasional jittering on the borders of each tile
after the end of the animation. Because of this, I changed the bitmask again
and made it so, that PAINT_SCREEN_TRANSFORMED gets set at the end of the
animation, while PAINT_SCREEN_REGION gets set during the animation. This fixed
the jittering and everything seems to be working well now.

But since I don't know anything about the internals of KWin and since I'm also
not a c++ dev, I don't want to submit a patch and would instead kindly ask for
somebody else to properly take a look at this, so that this annoying bug can
finally be fixed. Thanks!

Here is my diff:
https://gist.githubusercontent.com/bastimeyer/81c60699e5f5e762beb01a4bfeff1700/raw/04a2ab784f05f9f3cec522f4ac2a470e9cc803ac/desktopgrid-overlaying-tiles-fix.patch

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to