Bug 314717

Summary: Present windows animation: Windows do a little jump at the end.
Product: [Plasma] kwin Reporter: Björn Sonnenschein <green>
Component: effects-present-windowsAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: karthik.periagaram, nate
Priority: NOR Flags: thomas.luebking: ReviewRequest+
Version: 4.10.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/111276/
Latest Commit: Version Fixed In: 5.23
Sentry Crash Report:

Description Björn Sonnenschein 2013-02-08 21:31:52 UTC
The end of the window's animation when they are aligned to the grid looks jumpy because there is a little bouncing effect at the end. The windows drift maybe one pixel too far and then jump back.

Reproducible: Always

Steps to Reproduce:
1. Start the present windows effect.
2. Take a look at inactive windows, as the active window shows different behavior reported in an other bug.
Actual Results:  
The windows do a little jump at the animation end.

Expected Results:  
Windows should glide to their positions smoothly.

Linux mint 14, 64bit, kde from backports.
Comment 1 Thomas Lübking 2013-02-08 22:17:01 UTC
Do you use opengl compositing and "accurate" scaling?
What if you set scaling to "smooth" instead?

This is btw. hardly notable here even when settign the animation speed to "extremely slow" - ooc: what speed setting do you use?
Comment 2 Björn Sonnenschein 2013-02-09 12:41:23 UTC
I use opengl and accurate scaling, but have tried all other scaling methods which do also show the problem, and I have checked that it occours with every layout mode.  I use normal speed and if you know what to look for, it is clearly visible most time, while it is useful to have four or more maximized windows opened so that much scaling is happening during the animation. If you change the speed to extremely slow, you may clearly see a bounce move at the end of the animation.
Comment 3 Björn Sonnenschein 2013-02-09 12:47:08 UTC
I have no Idea how the effect works (will look through the code next days), but isn't it possible to detect the active window and scale it it's final size during the animation and so don't scale it to the size of inactive windows at first?
Comment 4 Björn Sonnenschein 2013-02-09 12:48:03 UTC
Sorry, the above comment was postet to the wrong bug, please delete...
Comment 5 Karthik Periagaram 2013-03-17 01:48:42 UTC
I thought this was the intended behavior and as such, is a rather pleasing effect. The windows overshoot the ending position and double back. The amount of jumping back is also seemingly proportional to the distance the window traveled to get there.

Feels more organic that way, like the windows accelerated, then decelerated, but not enough, so they overshoot and reverse into position.

I'm not sure this should be considered a bug.
Comment 6 Björn Sonnenschein 2013-04-28 10:33:18 UTC
Hmm, at least at normal speed it doesn't look like a natural motion for windows with a large traveling distance because the traveling back effect lasts only for approx. 2-3 frames and so is more percepted as a jump rather than a motion in my opinion. Maybe it would be nicer if the transition from the linear to the backtravel phase would be smoother and start a little earlier so that the acceleration curve is something like an S shape?
Comment 7 Thomas Lübking 2013-06-27 20:08:39 UTC
Not 100% sure whether this is what is meant. Maybe have a look at the patch.
Comment 8 Thomas Lübking 2013-07-01 19:19:40 UTC
Git commit d2d71aaa4f5fa18e79757712def78cb4d4314345 by Thomas Lübking.
Committed on 27/06/2013 at 19:54.
Pushed by luebking into branch 'master'.

Don't highlight hoverd window while PW start/stops

Instead have a synthetic motion after the effect started
and explicitly set the selected window on click/drags
Related: bug 314840, bug 314715
FIXED-IN: 4.11
REVIEW: 111276

M  +16   -3    kwin/effects/presentwindows/presentwindows.cpp
M  +1    -0    kwin/effects/presentwindows/presentwindows.h

http://commits.kde.org/kde-workspace/d2d71aaa4f5fa18e79757712def78cb4d4314345
Comment 9 Nate Graham 2021-08-19 15:12:32 UTC
This is fixed in the QML rewrite for Plasma 5.23!