Bug 394245 - Glide effect suffers from perspective distortions
Summary: Glide effect suffers from perspective distortions
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-14 10:53 UTC by Vlad Zahorodnii
Modified: 2018-07-24 19:13 UTC (History)
0 users

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 Vlad Zahorodnii 2018-05-14 10:53:55 UTC
If a window is off-center, it'll be distorted(more precisely, skewed).

Steps to reproduce:

- On a multiple monitor setup

  - Enable Glide effect
  - Open a new window

- On a single monitor setup

  - Enable Glide effect
  - Open a new window
  - Move it to a off-center location
  - Close it

Expected results:
No skews, etc.

Actual results:
Windows are skewed.

Fixes:
One of possible fixes: https://github.com/zzag/kwin-effects-appear1/issues/1#issuecomment-388640833
Comment 1 Vlad Zahorodnii 2018-07-24 19:10:24 UTC
Git commit 6a7e780d74ec6a5b504332b484a6734b0be42073 by Vlad Zagorodniy.
Committed on 24/07/2018 at 19:10.
Pushed by vladz into branch 'master'.

[effects] Rewrite the Glide effect

Summary:
There are several reasons why I "re-wrote" the Glide effect:
* it doesn't work correctly because it suffers from undesired perspective distortions: {F5914378}
   The worst part is that windows are distorted so much on multiple monitor setups that it's hard to say whether that's glide animation.
* window close animation is not quite intuitive: if the close button is
  located at the top and I click it, I would expect that window is
  rotated around the bottom edge, not the top; (IMHO)
* it's too much distracting when working on something for quite good
  amount of time: e.g. when editing photos, which involves a big number
  of different dialogs;
* there are issues with deletion of QTimeLine;
* windows are not gracefully released if some other effect grabs them;
* its code doesn't follow common coding style in KWin.

So, the "new" Glide effect is more subtle, it's possible to have
different rotation edges for window open/close animations, it doesn't
animate special windows(like audio volume feedback), the code is simpler
and readable. Yet, there are some issues with QTimeLine, which are
common to all effects in KWin anyway.

### Demos

{F5889803}
//Window Open Animation//

{F5889804}
//Window Close Animation//

{F5889805, layout=center, size=full}
//KCM//

Test Plan:
* Enabled the Glide effect
* Closed System Settings
* Opened it again

Reviewers: #kwin, #plasma, #vdg, davidedmundson

Reviewed By: #kwin, #plasma, #vdg, davidedmundson

Subscribers: ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13338

M  +205  -157  effects/glide/glide.cpp
M  +110  -57   effects/glide/glide.h
M  +25   -3    effects/glide/glide.kcfg
M  +2    -0    effects/glide/glide_config.cpp
M  +3    -3    effects/glide/glide_config.h
M  +213  -123  effects/glide/glide_config.ui

https://commits.kde.org/kwin/6a7e780d74ec6a5b504332b484a6734b0be42073
Comment 2 Vlad Zahorodnii 2018-07-24 19:13:35 UTC
The new Glide effect has a fix for this bug, so I mark it as fixed.