Commit graph

3245 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
Vlad Zagorodniy
7785c19f11 [effects/slidingpopups] Use single QHash to store animations
Summary:
This patch intends to simplify "management" of animations and reduce
QHash abuse.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14096
2018-07-23 16:34:29 +03:00
Vlad Zagorodniy
82ab1d1ecd [effects/slidingpopups] Unconditionally force background contrast
Summary: Force background contrast same way blur is forced.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14092
2018-07-23 16:33:53 +03:00
l10n daemon script
3b3aa82f58 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-23 05:24:40 +02:00
Vlad Zagorodniy
9cff6c21f3 [effects/slide] Fix coding style
Summary:
Kdelibs coding style states the following about whitespace placement:

> For pointers or references, use a single space before '*' or '&', but not after

Source: https://community.kde.org/Policies/Kdelibs_Coding_Style#Whitespace

Also, putting a whitespace after ! is not common in KWin.

Test Plan: Switched between virtual desktops.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14260
2018-07-21 14:44:37 +03:00
Vlad Zagorodniy
59e3e21c47 [effects/sheet] Drop IsSheetWindow hack
Summary:
When the Sheet effect was written, isModal worked only for Client
windows, not Deleted windows:

    bool EffectWindowImpl::isModal() const
        {
        if( Client* c = dynamic_cast< Client* >( toplevel ))
            return c->isModal();
        return false;
        }

so the Sheet effect had to track windows by using WindowInfo class, e.g.

    class WindowInfo
        {
        public:
            bool deleted;
            bool added;
            bool closed;
        };

the biggest drawback of that method is that WindowInfo for each modal kept around
as long as those modals existed. It also was adding little overhead, e.g.

    void SheetEffect::paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data )
        {
        if( windows.contains( w ) && ( windows[ w ].added || windows[ w ].closed ) )

Things changed with a8160b3c31afa1db24084147ad4ce50cf3c0314a. With that
commit, WindowInfo kept only for modals that are currently being
animated, but isModal still worked only with Client windows, so
IsSheetWindow hack had been introduced.

Long story short: we don't need IsSheetWindow hack anymore because
isModal now works with Deleted windows.

Test Plan: Pressed Ctrl+O in Kate.

Reviewers: #kwin, graesslin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14246
2018-07-21 10:44:18 +03:00
l10n daemon script
7f398af180 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-15 05:21:01 +02:00
Vlad Zagorodniy
4aa19c2e91 [effects/magiclamp] Eliminate unnecessary reallocations
Summary:
The maximum size of `newQuads` is known in advance, so we can avoid
unnecessary reallocations when adding transformed window quads to
`newQuads`.

Test Plan: Minimized/unminimized System Settings.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14117
2018-07-15 01:41:37 +03:00
Vlad Zagorodniy
049c6e0966 [effects/slidingpopups] Use range-based for loops
Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14086
2018-07-14 22:06:28 +03:00
Vlad Zagorodniy
a63c9ab319 [effects/slidingpopups] Reserve enough memory for filtered quads
Summary: That's to avoid unnecessary reallocations.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14085
2018-07-14 22:04:25 +03:00
Vlad Zagorodniy
461aace55f [effects/slidingpopups] Fix possible segfault
Reviewers: #kwin, mart, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14087
2018-07-13 19:56:19 +03:00
Vlad Zagorodniy
4e1e22c76d [effects/slidingpopups] Simplify math in setupAnimData
Summary:
Also, this change fixes "possible bug" when sanitizing offset for
East/South(Right/Bottom) location.

QHash abuse will be fixed in the follow-up patches.

Reviewers: #kwin, mart, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14088
2018-07-13 14:31:21 +03:00
Vlad Zagorodniy
2d1afb809c [effects/slidingpopups] Delete unused prePaintScreen method
Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14091
2018-07-13 11:08:31 +03:00
Vlad Zagorodniy
d0ceaf4c70 [effects/slide] Clean up
Summary:
* Reorder and sort includes
* Use EffectWindowList
* Fix namespace comments

(this change doesn't add any useful features or bug fixes)

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13979
2018-07-11 17:06:59 +03:00
Vlad Zagorodniy
c69a16b914 Merge branch 'Plasma/5.13' 2018-07-11 16:42:09 +03:00
Vlad Zagorodniy
0c3047a8f1 [effects/desktopgrid] Don't change activities
Summary:
If the Desktop Grid effect doesn't use the Present Windows effect to
layout windows, windowAt helper can return a window that doesn't belong
to current activity because it doesn't check whether that window belongs
to current activity.

This change addresses that problem by adding corresponding check.

BUG: 301447
FIXED-IN: 5.13.4

Test Plan:
//Unchecked "Use Present Windows effect to layout the windows".//

* Switched to activity #1
* Switched to virtual desktop #1
* Launched Konsole and maximized it(to increate hit area)
* Switched to activity #2
* Switched to virtual desktop #2
* Launched Dolphin and maximized it
* Activated the Desktop Grid effect, clicked on virtual desktop #1 (activity #2 is still active)
* Switched to activity #1
* Activated the Desktop Grid effect, clicked on virtual desktop #2 (activity #1 is still active)

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14046
2018-07-11 16:39:48 +03:00
Vlad Zagorodniy
30954506d3 [effects/kscreen] Port to TimeLine
Test Plan:
Ran

```lang=sh
xprop -root -f _KDE_KWIN_KSCREEN_SUPPORT 32c -set _KDE_KWIN_KSCREEN_SUPPORT 1

sleep 5

xprop -root -f _KDE_KWIN_KSCREEN_SUPPORT 32c -set _KDE_KWIN_KSCREEN_SUPPORT 3
```

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13865
2018-07-05 23:00:27 +03:00
Vlad Zagorodniy
c3fd38e182 [effects/slide] Expose support information
Summary: That's mostly to analyze what options people use in bug reports.

Test Plan:
* Enabled the Slide effect
* Ran `qdbus org.kde.KWin /KWin supportInformation`

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13843
2018-07-02 20:36:57 +03:00
Vlad Zagorodniy
22a6cab15f [effects/slidingpopups] Port to TimeLine
Summary:
In addition to porting to TimeLine, this change also fixes quadratic
scaling of animation durations:

```lang=cpp
animData.fadeInDuration = animationTime(mFadeInTime);
animData.fadeOutDuration = animationTime(mFadeOutTime);
```

where

```lang=cpp
mFadeInTime = animationTime(...);
mFadeOutTime = animationTime(...);
```

Depends on D13740

Test Plan: Opened/closed Kickoff.

Reviewers: #kwin, mart

Reviewed By: #kwin, mart

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13801
2018-07-02 12:58:14 +03:00
Vlad Zagorodniy
a1e76b4802 [effects/cube] Change type of the rotationDuration property to int
Summary:
Currently, type of the rotationDuration is std::chrono::milliseconds.
std::chrono::milliseconds is an unregistered datatype so we can't really
use it with Q_PROPERTY.

Test Plan: Ran `qdbus org.kde.KWin /KWin supportInformation`.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13839
2018-07-02 12:46:38 +03:00