Commit Graph

16277 Commits (1fb2eace3fbfc6645e024aa0f5003306ac60a417)

Author SHA1 Message Date
Vlad Zagorodniy 6e2292c81c [effects/slidingpopups] Use override keyword
Test Plan: Compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14801
2018-08-14 11:55:47 +03:00
Vlad Zagorodniy 653cea5f49 [effects/slidingpopups] Overhaul the animations data struct
Summary:
The existing Data struct has some serious problems:

(a) naming is not intuitive, SlideInterface uses more cleaner terminology
    so let's use that (and because Wayland is the future);

(b) fadeInTime and fadeOutTime should be slideInDuration and slideOutDuration
    respectively. The Sliding popups effect doesn't fade windows, it slides
    them;

(c) mWindowsData should be m_animationsData because other parts of this
    effect refer to it as "anim data"(e.g. setupAnimData).

This effect uses its own Location enum class instead of KWayland::
Server::SlideInterface::Location because it would be better to not
depend on platform specific data structures.

As a side effect, this change also fixes QHash abuse. The Sliding popups
effect is still hashing windows twice in prePaintWindow and paintWindow.
But I think that's acceptable because usually there would be only one
active sliding window.

CCBUG: 331118

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14301
2018-08-14 11:55:07 +03:00
l10n daemon script af34144f7f SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-14 05:54:05 +02:00
Vlad Zagorodniy 4a38f15d90 [effects/slidingpopups] Don't filter window quads
Summary:
Slided popups are clipped twice:
* first, when filtering window quads in prePaintWindow;
* then, when doing scissor test (the opengl scene plugin does scissor
test for transformed windows).

Because of that, we don't need to filter window quads. Filtering window
quads only adds overhead.

This change simplifies code and "fixes" incorrect clipping when a slided
popup has shadows.

Test Plan:
* Put Plasma panel on the left screen edge;
* Open and close the Application Launcher.

(repeat for top/right/bottom screen edge)

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14450
2018-08-13 19:11:07 +03:00
Nerdopolis Turfwalker 304528e80b [platforms/fbdev] Attempt to set the framebuffer color layout on the framebuffer device
Summary:
Weston does something similar
https://cgit.freedesktop.org/wayland/weston/tree/libweston/compositor-fbdev.c#n315
 ...and it seems that the non-primary framebuffer devices start completely off. (the screen is off on my Displayport device, and the window for the second vga card in qemu is much smaller than the primary one, and all black for my qemu vm) .

In my testing, sending the ioctl FBIOPUT_VSCREENINFO with a *changed* &varinfo allows it to wake up, and turns on the screen.
doing FBIOGET_VSCREENINFO and then FBIOPUT_VSCREENINFO in my testing does not work.

I think really the values that end up getting changed are varinfo.transp.offset and varinfo.transp.length. at least on the qemu system, but in this patch I am aligning all of them for completeness, because the drivers might do it differently for qemu

Test Plan: This causes the window for /dev/fb1 (remote-viewer, and a qemu vm with two "VGA" (bochsdrm) cards) to resize from the smaller size when specifying it as the --fb-device on seat0, and kwin draws on the device.

Reviewers: #kwin, davidedmundson, graesslin

Reviewed By: #kwin, graesslin

Subscribers: zzag, davidedmundson, rkflx, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9572
2018-08-13 17:37:24 +03:00
Vlad Zagorodniy 77966a09f2 [effects/sheet] Modernize code
Summary:
* Use new connect syntax
* Fix coding style
* Port to TimeLine
* Delete unused includes
* Use interpolate helper
* Drop WindowInfo class

Behavior of this effect hasn't been changed.

Test Plan: Opened/closed an "Open File" dialog, it still flies in/out.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, anthonyfieroni, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14685
2018-08-12 11:18:37 +03:00
Vlad Zagorodniy 4299b81f65 [effects] Drop the Scale in effect
Summary:
It's superseded by the new scale effect(D13461).

Existing users of this effect will be migrated to the new scale effect.

Depends on D13461

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

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13462
2018-08-12 10:58:07 +03:00
Vlad Zagorodniy 9d197e8cb6 [effects] Add Scale effect
Summary:
The new effect scales windows as they appear and disappear.

As the the most of window animation effects, it is a monolithic effect,
i.e., if you enable scale effect, it will animate *both* the appearing and
disappearing.

The main difference between the Scale effect and the Scale in effect is
that the Scale in effect only animates windows as they appear. There is
no corresponding "the Scale out" effect, which is odd. Other points that
differentiate the Scale effect from the Scale in effect:

* it is more subtle;
* it doesn't animate the log out screen;
* it doesn't conflict with the Fade effect, etc.

... and overall, the Scale effect supersedes the Scale in effect.

{F5904947}

//Window open animation.//

{F5904948}

//Window close animation.//

{F5905283, layout=center, size=full}

//KCM.//

Test Plan:
* Enabled this effect
* Opened/closed System Settings

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

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

Subscribers: ngraham, davidedmundson, fvogt, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13461
2018-08-12 10:57:41 +03:00
Vlad Zagorodniy a8563304f2 [effects/glide] Don't animate the Application Dashboard
Summary:
The Glide effect should not animate the Application Dashboard because
it's not an ordinary application or a dialog. Same applies to Kickoff,
panel popups, etc.

The most obvious solution would be to add "plasmashell plasmashell"
window class to the blacklist, but we still would like to animate some
of plasmashell's windows, for example, Empty Trash Bin confirmation
dialog (if the trash bin icon is on the desktop).

One could notice that the Empty Trash Bin confirmation dialog, Task
Manager Settings window, and other plasmashell's windows that we want
to animate have decorations. So, we can use that as a heuristic.

Test Plan: Opened/closed the Application Dashboard.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, abetts, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14367
2018-08-12 09:44:45 +03:00
l10n daemon script 3dab3d74cb SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-11 07:46:02 +02:00
l10n daemon script 98e401a9f4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-11 07:20:54 +02:00
l10n daemon script cd6f56a443 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-11 05:34:25 +02:00
Vlad Zagorodniy 77daaeaaa1 [effects/minimizeanimation] Use override keyword
Test Plan: Still compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14729
2018-08-10 15:56:52 +03:00
Vlad Zagorodniy 99804e0233 [effects/mousemark] Properly use GL_LINE_SMOOTH
Summary:
We need to enable GL_BLEND for line smoothing to work.

CCBUG: 337044

Test Plan:
Before:
{F6184072, layout=center, size=full}

After:
{F6184074, layout=center, size=full}

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14714
2018-08-09 22:52:37 +03:00
Vlad Zagorodniy fb4dc9a9cf [effects/sheet] Fix undesired perspective distortion
Summary:
If a modal window is near some of screen edges, it will be distorted
in undesired way when it's being animated.

In order to keep perspective distortions invariant, no matter where
the modal window is on the screen, we have to move that modal window
to the origin, scale it, rotate it, translate it, apply perspective projection,
and then move it back.

Test Plan:
* Opened Kate
* Opened "Open File" dialog (during the in animation, it was distorted as expected)
* Closed that dialog (during the out animation, it was distorted as expected)

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14687
2018-08-08 17:46:18 +03:00
Vlad Zagorodniy 10e99f64c1 [effects/sheet] Grab modal windows
Summary:
If both the Glide effect and the Sheet effect are enabled,
they will conflict. Expected behavior would be:

* the Sheet effect animates only modal windows;
* the Glide effect animates the rest of normal windows.

In order to resolve the conflict, the Sheet effect has to grab
modal windows. Because it's quite specialized effect, we have
to ignore whether modal windows have been grabbed by the
Glide effect.

Test Plan:
* Enabled both the Glide effect and the Sheet effect;
* Opened Kate;
* Opened "Open file" dialog;
* Closed the dialog.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14560
2018-08-08 11:04:49 +03:00
David Edmundson 3332b32101 [scripting] Fix effect.animate() curve argument being actually used
Summary:
One cannot use a non metatype frrom an external class inside an
invokable. https://bugreports.qt.io/browse/QTBUG-58454

End result is the script engine arguments wouldn't match up and MOC
would just use the default value.

As far as I can tell this has been broken for 6 years.
The global animate method that unboxes a QJSValue as an object is
unaffected.
No shipped kwin effect actually used it.

To some extent we didn't even actually want to enforce the enum as we
also accept custom value of ScriptedEffect::GuassianCurve, so it has
been switched for an int.

Test Plan: Unit test

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14669
2018-08-07 21:33:29 +01:00
Vlad Zagorodniy 5336c9a1e2 [effects/logout] Animate the disappearing of the logout screen
Summary:
Currently, the fade effect animates both the appearing and the
disappearing of the logout screen. We don't want that because
the logout effect should do that.

D14582 addresses that problem by adding "ksmserver ksmserver" window
class to the blacklist of the fade effect. With that change, only the
logout effect animates the appearing of the logout screen. But there is
a problem... If user clicks the cancel button, the logout screen
instantaneously disappears, instead of smoothly fading out.

This change addresses that problem by adding "out" animation.

Depends on D14582

Test Plan:
{F6175011}
//Now, only the logout effect animates the appearing and the disappearing of the logout screen.//

{F6175013}
//No smooth transitions when the logout effect is disabled.//

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

Reviewed By: #kwin, #plasma, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14592
2018-08-07 20:30:56 +03:00
l10n daemon script 226fb7d30b SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-07 05:48:25 +02:00
David Edmundson 7aedacd89e Fractional scaling in DRM kscreen integration
Summary:
The kwin code was written to treat scale as non integers, we just need
to switch to the relevant float version of methods.

Test Plan:
Used kscreen-doctor to change this
Konsole resized as appropriate
Plasmashell was all broken, but that's expected until QScreen::size is based on the
xdg-output virtual size

Reviewers: #kwin, mart, graesslin, romangg

Reviewed By: #kwin, mart, graesslin

Subscribers: romangg, zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13616
2018-08-06 10:50:47 +01:00
l10n daemon script 39186e1442 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-06 05:37:09 +02:00
David Edmundson 1df27f8272 [effects/slidingpopups] Warnings--
Test Plan: Compiles

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14615
2018-08-05 11:39:52 +02:00
Vlad Zagorodniy d61f3ec2d5 [effects/fade] Don't animate the logout screen
Summary:
The appearing of the logout screen is animated by both the Fade effect
and the Logout effect. The former should not animate the logout screen
because that's the job of the latter.

Test Plan:
Clicked the shut down button, the log out screen smoothly faded in.
Clicked the cancel button, the log out screen instantaneously disappeared.

Reviewers: #kwin, #plasma, davidedmundson

Reviewed By: #kwin, #plasma, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14582
2018-08-05 11:58:13 +03:00
Vlad Zagorodniy 92880381b8 [effects/minimizeanimation] Fix coding style
Summary:
This change doesn't add new features or bugfixes, it only makes code
look uniform.

Test Plan: Still compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14608
2018-08-04 22:38:21 +03:00
Vlad Zagorodniy ce9965ccad Fix typo
Summary: crate -> create

Test Plan: Still compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14584
2018-08-04 22:35:40 +03:00
l10n daemon script 6d7e9d98c4 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-03 07:55:08 +02:00
l10n daemon script ca3666f1ad SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-03 07:28:08 +02:00
l10n daemon script c302af7c66 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-03 05:41:05 +02:00
Vlad Zagorodniy e615b25957 [effects] Move Fall Apart and Sheet to the Candy category
Summary:
The Fall Apart effect and the Sheet effect look like "candies" so
let's move them to corresponding category.

Test Plan: {F6167489, layout=center, size=full}

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

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

Subscribers: ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14517
2018-08-02 16:36:12 +03:00
Vlad Zagorodniy 119d0d8f8c [kcmkwin/compositing] Move show desktop effects to their own category
Summary:
We have two exclusive categories in the Appearance category:
minimize-animations and show-desktop. But it's hard to draw a line
between them, i.e. one can't say whether given effect belongs to the
minimize-animations category or to the show-desktop category.

This change moves show desktop effects to their own category so we have only
one exclusive category in the Appearance category.

Before:
{F6160592, layout=center, size=full}

After:
{F6161173, layout=center, size=full}

Reviewers: #kwin, #plasma, #vdg, ngraham

Reviewed By: #vdg, ngraham

Subscribers: davidedmundson, graesslin, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14458
2018-08-02 16:32:57 +03:00
Vlad Zagorodniy 950bf94f30 [effects/minimizeanimation] Use interpolate helper
Summary:
That's not really "clear" what's going on with opacity values. Use
interpolate helper to improve a little bit readability.

Test Plan: Minimized/uniminized System Settings, still works as expected.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14553
2018-08-02 15:32:57 +03:00
Vlad Zagorodniy c36b99cdbc [effects/minimizeanimation] Make it a little bit smoother
Summary:
Don't cast translation values from double to int because it makes
animation a little bit choppy.

It makes significant difference only when animation speed is set to
"Very slow".

Test Plan:
- Go to 'System Settins > Display and Monitor > Compositor';
- Set animation speed to "Very slow"(it scales animation durations by 20x);
- Minimize/uniminimize System Settings.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14552
2018-08-02 15:31:05 +03:00
l10n daemon script 386d64368d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-02 05:31:42 +02:00
l10n daemon script c21d688d73 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-01 05:55:06 +02:00
Jonathan Riddell b02d9e0943 Update version number for 5.13.4
GIT_SILENT
2018-07-31 13:15:41 +01:00
David Edmundson 5d279a0ddd [autotests] Unit most scripted effects API
Summary:
Ready for QJSEngine port and upcoming other fixes.
Split as it makes it easier to do any before/after testing.

Test Plan:
All tests pass with the current QScriptEngine
Verified expected API against a wiki page and current code.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14482
2018-07-31 12:29:04 +01:00
David Edmundson 7b65aa9199 [libkwineffects] Remove broken copy constructor of AniData
This doesn't copy everything, it misses the ID which breaks
everything.

Given it's just a direct copy of members the auto-generated one does a
better job
2018-07-31 12:29:00 +01:00
l10n daemon script d143036702 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-07-31 05:47:10 +02:00
Vlad Zagorodniy cb820d8966 [effects] Move the Wobby Windows effect to the Candy category
Summary:
The Wobby Windows effect is more a "candy" rather than a standard effect,
so it makes more sense to move it to the Candy category.

Test Plan:
Opened the Desktop Effects KCM, the Wobby Windows effect is in the Candy
category:

{F6160383, layout=center, size=full}

Reviewers: #kwin, #plasma, #vdg, ngraham, broulik

Reviewed By: #plasma, #vdg, ngraham, broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14455
2018-07-30 11:59:44 +03:00
Vlad Zagorodniy 89b3da58fc [effects] Edit description of the Logout effect
Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14461
2018-07-30 11:59:17 +03:00
Vlad Zagorodniy d8288012f0 [effects] Edit description of the Glide effect
Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14460
2018-07-30 11:58:40 +03:00
Vlad Zagorodniy 756d4e6e3f Use explicit Chain type in the focus chain
Summary: The explicit Chain type makes code more cleaner.

Test Plan: Still compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14431
2018-07-30 11:23:43 +03:00
l10n daemon script 6adc20dca6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-07-30 07:40:40 +02:00
l10n daemon script d51ad9f787 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-07-30 07:15:27 +02:00
l10n daemon script 85eec90c23 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-07-30 05:27:08 +02:00
Vlad Zagorodniy c7298b24e6 [effects] Put Window Aperture and eye On Screen in an exclusive category
Summary:
Having these two enabled doesn't make sense. Also, Window Aperture + eye
On Screen looks really weird.

Test Plan:
Opened the Desktop Effects KCM, both the Window Aperture effect and the
eye On Screen effect are in an exclusive category:

{F6160394, layout=center, size=full}

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

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

Subscribers: ngraham, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14456
2018-07-29 17:46:14 +03:00
Roman Gilg 054ccc3898 Use locked cursor position hint
Summary:
Listen for cursor position hint changes and set cursor position to the hint
on unlock if a valid position hint was set.

Test Plan: With pointer constraints test app.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Maniphest Tasks: T4693

Differential Revision: https://phabricator.kde.org/D14176
2018-07-27 17:19:33 +02:00
Alistair Francis d7a1e33683 [kcmkwin/kwindecoration] Add missing QT include
Summary: Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14173
2018-07-26 10:04:41 -07:00
Alistair Francis d723ce2c40 [kcmkwin/kwindecoration] Add missing QT include
Summary: Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14173
2018-07-26 10:01:41 -07:00
Vlad Zagorodniy 6a7e780d74 [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//

CCBUG: 394245

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
2018-07-24 22:10:10 +03:00