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

--- Comment #10 from bastimeyer...@gmail.com ---
I would really appreciate if this issue could be fixed. This bug makes working
with the desktopgrid a really unpleasant experience, and the desktopgrid is an
essential part of my desktop workflow.

Until 5.24.0 I was able to revert the commit which broke the present windows
effect inside the desktopgrid effect, but this isn't possible anymore and it
now requires solving merge conflicts and changing some more stuff. I've tried
that and had some quick attempts at fixing the issue, but without success
because I don't know anything about the internals of kwin and this is a bit
overwhelming for me.

Here's the history of the desktopgrid effect:
https://invent.kde.org/plasma/kwin/-/commits/v5.24.0/src/effects/desktopgrid

As already mentioned, the commit which broke the present windows effect is
this:
0042d2d8c141e914c4a2bd7086e669b11771a78a ("effects/desktopgrid: port to
realtime gestures")
And the following two commits were necessary to revert too, as they apply minor
changes on top of that:
b376f8832f20d69dc8dabe5ce75c87ddde7b7444 ("Fix desktop grid border activation")
29d1b25ad584faf3b66d5b38f4075a00773c9c0f ("effects/desktopgrid: Schedule
repaint when toggled")

0042d2d8c141e914c4a2bd7086e669b11771a78a does a little bit more though than
"porting to realtime gestures" from what it looks like, and it replaces the
`setActive` method in favor of the `activate` and `deactivate` methods. It also
changes the `prePaintScreen` method, and here, the `timeline` calculation is a
bit different and it changes how the `finish` method gets called after the
animation has finished. My guess is that the issue lies here.

This seems to be the relevant change, but I might be wrong (second link shows
the current state on v5.24.0):
https://invent.kde.org/plasma/kwin/-/commit/0042d2d8c141e914c4a2bd7086e669b11771a78a#646809c6b03e31d2cd72be1a027121f3802fbbd4_173_224
https://invent.kde.org/plasma/kwin/-/blob/v5.24.0/src/effects/desktopgrid/desktopgrid.cpp#L222-228

`WindowMotionManager.calculate` receives the value of `timeline.currentTime()`
instead of `time`, and one of the `timeline.setCurrentTime()` calls is now
guarded by `timelineRunning` which gets set to true or false in the callback
functions defined above.

The `finish` method now gets called in a callback added to the event loop, and
it doesn't check for `!(isUsingPresentWindows() &&
isMotionManagerMovingWindows())` anymore:
https://invent.kde.org/plasma/kwin/-/commit/0042d2d8c141e914c4a2bd7086e669b11771a78a#646809c6b03e31d2cd72be1a027121f3802fbbd4_178_230
https://invent.kde.org/plasma/kwin/-/commit/0042d2d8c141e914c4a2bd7086e669b11771a78a#646809c6b03e31d2cd72be1a027121f3802fbbd4_157_206

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

Reply via email to