Commit graph

3313 commits

Author SHA1 Message Date
David Edmundson
b1b1360ec3 [effects/fadedesktop] Set animation as a fullscreen effect
Summary:
This lets other effects know whether they should inhibit or not which
reduces
visual glitches of overlapping animations.

BUG: 321201
FIXED-IN: 5.15.0

Test Plan: Switched desktops, they still faded

Reviewers: #kwin, zzag

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15474
2018-10-10 12:32:53 +01:00
l10n daemon script
48002ab7fe 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-10-10 06:54:14 +02:00
Vlad Zagorodniy
27bf348583 Merge branch 'Plasma/5.14' 2018-10-09 18:30:41 +03:00
Vlad Zagorodniy
c2ffcfdc21 [effects/wobblywindows] Fix visual artifacts caused by maximize effect
Summary:
If one wants to drag a maximized window while he or she has enabled both
the Wobbly Windows and the Maximize effect, visual artifacts can be
shown.

When the Maximize effect animates transition from maximize to restore,
some parts of the window can overshoot repaint regions(because of
wobbliness), leaving us with the visual artifacts.

To fix that, we have to take into account current scale and translation
when calculating dirty region in the Wobbly Windows effect.

BUG: 370612
FIXED-IN: 5.14.1

Test Plan: When dragging maximized windows, there are no visual artifacts anymore.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15961
2018-10-09 18:30:13 +03:00
Vlad Zagorodniy
769f2659dd [effects] Make Scale and Glide effects Wayland-friendly
Summary:
The Scale effect and the Glide effect have to animate only ordinary
windows(i.e. the ones that are considered to be apps).

On X11, in order to distinguish ordinary windows from combo box popups,
popup menus, and other popups, those effects check whether given window
is managed.

On Wayland, there is no concept of managed/unmanaged windows.

XDG Shell protocol defines 2 surface roles:
* xdg_toplevel;
* and, xdg_popup.

The former can be used to implement typical windows, the ones that can
be minimized, maximized, etc.

The latter can be used to implement tooltips, popup menus, etc. Thus,
that's a good criteria to filter popup windows.

CCBUG: 398100

Reviewers: #kwin, graesslin, davidedmundson

Reviewed By: #kwin, graesslin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15117
2018-10-09 11:04:35 +03:00
Vlad Zagorodniy
66a91f0861 [effects/slidingpopups] Fix jumpy transition between In and Out animations
Summary:
If a window is being slided in and for some reason it gets closed, the
window will be slided out. The problem is that there is a jump between
the slide in animation and the slide out animation.

The reason for that is we cancel the slide in animation when the slide
out animation is started.

It makes sense to cancel previously active animations because they have
different durations. But visually, it doesn't look good.

TimeLine tries to preserve progress value when changing duration. Thus,
let's utilize that to fix the jump.

This change matters only with animation speed factor > 1.0.

CCBUG: 264276

Test Plan: Manually.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15626
2018-10-08 14:14:14 +03:00
l10n daemon script
5aeba9da59 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-10-08 07:59:39 +02:00
l10n daemon script
e60c878647 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-10-08 06:07:21 +02:00
l10n daemon script
dc707c5c4e 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-10-07 08:03:19 +02:00
l10n daemon script
c244ee5e3e 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-10-07 06:07:19 +02:00
l10n daemon script
e16334b3f2 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-10-06 05:50:39 +02:00
Vlad Zagorodniy
0e50a9d55c Merge branch 'Plasma/5.14' 2018-10-04 21:41:38 +03:00
Vlad Zagorodniy
e9fd57285f [effects/zoom] Set wrap mode for cursor texture
Summary:
With the Oxygen cursor theme, a visual glitch can appear in the
bottom-left corner of the cursor when the screen is zoomed in.

The reason for that is we're using GL_REPEAT for GL_TEXTURE_WRAP_S
and GL_TEXTURE_WRAP_T. So, when the linear filter samples neighboring
texels in the bottom, it can sample some texels from the top (because of
GL_REPEAT).

To fix that, we have to set the wrap mode to GL_CLAMP_TO_EDGE.

BUG: 338254
FIXED-IN: 5.14.0

Test Plan:
Before:
{F6303912}

After:
{F6303913}

Tried other cursor themes(Breeze and Adwaita), everything looks okay.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15949
2018-10-04 21:40:49 +03:00
David Edmundson
a10647edf5 Disable fade effect during fullscreen effects
Summary:
This means that if one opens/closes a window whilst present windows (for
example) is active we don't have two effects meddling with the opacity.

Like glide and scale this disables if it's invoked during an active full
screen effect, but it does not cancel animations that are running when a
full screen effect is launched.

Test Plan:
Windows still fade normally as before
Ran sleep ; dolphin with present windows / cube
Present windows fades windows itself so it's hard to see any difference
But it's more technically correct

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15933
2018-10-04 13:05:51 +01:00
l10n daemon script
d6e4096d76 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-10-04 05:56:51 +02:00
Vlad Zagorodniy
6cac594acb [effects/slide] Simplify logic that forces blur and background contrast
Summary:
The "Force" part in WindowForceBackgroundContrastRole and WindowForceBlurRole
is confusing. If WindowForceBlurRole is set on a window, background
behind it won't be blurred.

By setting WindowForceBlurRole we tell the Blur effect "that's fine to
do your business behind transformed windows."

The Slide effect only translates windows, it doesn't distort them, etc.
So, we can set WindowForceBackgroundContrastRole and WindowForceBlurRole
for all windows.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15707
2018-10-02 19:54:37 +03:00
Vlad Zagorodniy
6f5b3fbe40 [effects/slidingpopups] Do not add full window repaint in windowDeleted slot
Summary:
Full window repaints issued by the Sliding Popups effect can hide bugs in
other effects that animate the disappearing of windows (e.g. Scale).

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15822
2018-10-02 19:51:52 +03:00
l10n daemon script
4bcd809664 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-10-02 05:58:17 +02:00
l10n daemon script
972108e585 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-09-30 05:55:57 +02:00
l10n daemon script
0b8453c62f 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-09-29 08:22:49 +02:00
l10n daemon script
9f9e9f796b 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-09-29 06:04:44 +02:00
Vlad Zagorodniy
e822d27cbe [effects/cube] Update cubecap texture
Summary: Current cubecap texture is an old KDE logo. Let's use something newer.

Test Plan:
Before:
{F6282237}

After:
{F6282239}

Before:
{F6282372}

After:
{F6282375}

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

Reviewed By: #kwin, #plasma, davidedmundson

Subscribers: davidedmundson, ngraham, broulik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15726
2018-09-28 21:20:11 +03:00
Vlad Zagorodniy
72ad5dc894 [effects/slide] Delete redundant checks
Summary:
If isActive() returns false, neither paintScreen nor paintWindow nor
postPaintScreen will be called.

So, `if (m_active)` checks are redundant.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15708
2018-09-28 20:21:24 +03:00
Vlad Zagorodniy
1de9648a89 [effects/showpaint] Use a shortcut to toggle the effect
Summary:
The Show Paint effect is useful when debugging repaint regions issued by
effects. The only headache with it is necessity to enable/disable it.
Consider the following workflow:

* Do some change to an effect;
* Compile KWin (or the effect);
* Go to System Settings and enable the Show Paint effect;
* Test effect, check repaint regions, etc;
* Disable the Show Paint effect;
* Go to the step 1.

This workflow is really exhausting. Also, when testing repaints in a
nested compositor, things become quite messy.

Because purpose of this effect is to debug repaints (and because this
effect is not meant for daily usage), I think that's fine to change
how it's activated.

This patch improves the workflow by changing the way how this effect
gets activated. Instead of enabling/disabling it, one can just use a shortcut
to activate or deactivate the effect.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: broulik, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15703
2018-09-28 20:12:22 +03:00
Vlad Zagorodniy
fa6fa27935 [effects] Move the Desktop Cube Animation effect to its own directory
Summary: Just little tidying.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15725
2018-09-28 20:07:32 +03:00
Vlad Zagorodniy
12bd16968f [effects/blur] Add missing override keywords
Test Plan: Compiles.

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15712
2018-09-24 15:42:22 +03:00
Vlad Zagorodniy
646032a99d [effects/morphingpopups] Use enumerators from the DataRole enum
Summary:
Use Effect.WindowForceBackgroundContrastRole and Effect.WindowForceBlurRole
instead of integers to improve readability.

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15709
2018-09-24 15:41:13 +03:00
Igor Poboiko
1115ca8490 [effects/cubeslide] Fix "sticky" windows detection on Wayland
Summary: This is second part of {D15175}, and aimed at fixing Bug 390366.
The problem was that effect relied on isManaged() to detect OSDs and notifications, that should be painted on top of the cube. On Wayland, the desktop window itself is not managed, which made it "sticky".

Instead we use isSpecialWindow() check to explicitly make notifications and OSDs sticky.
It still requires fixing Plasma::Dialog, since it does not set isSpecialWindow() flag correctly.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

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

BUG: 390366
FIXED-IN: 5.15.0
2018-09-17 22:27:21 +03:00
Vlad Zagorodniy
91ddeea750 [effects/coverswitch] Port to TimeLine
Test Plan: Compiles and still works.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15302
2018-09-17 13:35:46 +03:00
l10n daemon script
c7455c7177 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-09-17 07:34:47 +02:00
l10n daemon script
ce7e79cdd6 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-09-17 05:41:57 +02:00
l10n daemon script
a77b7a8df7 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-09-15 07:49:44 +02:00
l10n daemon script
57df948ca1 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-09-15 06:01:01 +02:00
Igor Poboiko
525e96cc18 [effects/cubeslide] Slightly improve readability of the code 2018-09-14 12:52:32 +03:00
Vlad Zagorodniy
9043c092f9 [effects/cubeslide] Always slide desktop window 2018-09-14 12:46:34 +03:00
Igor Poboiko
ca1b5ea107 [effects/cubeslide] Fix visual glitches with Blur / BackgroundContrast effect
Summary:
Bugs occurred because KWin was not very happy when windows were painted during CubeSlideEffect::paintScreen().
Another issue is that blur, although it was supposed to, did not work at all (haven't found appropriate bug on bugzilla).
As well as background contrast effect.

This patch does the following thing:

 - Adopted WindowForceBlur / WindowForceBackgroundContrast logic from SlideEffect, instead of panels/stickyWindows QSets (those become useless anyway)
 - Added shouldAnimate code, which determines whether a window should be animated with the cube (i.e. ordinary windows) or should stick (i.e. panels or pinned windows, if corresponding options are checked in the settings)
 - It paints an additional non-transformed screen, on which it paints only "sticky" windows. This is done because otherwise KWin would apply blur not behind the OSD, but on the same place on moving cube face.
 - (in addition) switched to new Qt5 connect syntax.

Reviewers: #kwin, zzag

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

BUG: 361516
BUG: 362360
FIXED-IN: 5.15.0
2018-09-14 12:36:55 +03:00
David Edmundson
93b3ace067 [effects/fadedesktop] Fade to the correct opacity
Summary:
An opacity animation calls multiplyOpacity not setOpacity, therefore we
want to always fade between 0 and 1, not up to the window opacity.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15476
2018-09-14 10:09:32 +02:00
David Edmundson
4ecbacff77 [effects/fadedesktop] Port to explicit animate API
Summary: No behavioural changes

Test Plan:
Set a slow animation speed
Changed desktop

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15473
2018-09-14 10:09:22 +02:00
l10n daemon script
e4ff50624a 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-09-13 05:57:35 +02:00
Vlad Zagorodniy
74994a7fbd [effects/trackmouse] Allow to use both modifiers and shortcut
Summary:
The Track Mouse effect can be toggled either by pressing modifier keys
and moving mouse or by pressing a shortcut. It's not possible to use
the latter and then the former without changing config.

But there is one caveat, in order to use shortcut, you have to uncheck
all modifier keys. This seems to be not very intuitive.

In addition to that, the KCM allows to change shortcut even if there is
some checked modifier.

As the title says, this change makes possible to use both modifier keys
and shortcut to activate this effect without changing config.

KCM:
{F6237308, layout=center, size=full}

BUG: 398124
FIXED-IN: 5.14.0

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

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

Subscribers: broulik, abetts, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15272
2018-09-12 16:37:05 +03:00
Vlad Zagorodniy
cc1f30b43d [effects/showpaint] Modernize code
Summary:
Summary of changes:
* Use QVector to store colors
* Add Q_OBJECT macro
* Port away from QRegion::rects
* Fix coding style
* Use default member initialization
* Use nullptr
* Reserve rects in paintXrender

The behavior of this effect haven't been changed, it still acts as before.

Test Plan: Compiles, and the Show Paint effect is still a psychedelic thing.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15424
2018-09-11 17:01:17 +03:00
Vlad Zagorodniy
113ebe9bc2 [effects] Fix type of X-KWin-Video-Url
Summary:
The desktop file parser supports only QString, QStringList, Int, Double,
and Bool. QUrl is not a supported type for some reason.

Thus, let's use QString for X-KWin-Video-Url.

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: Zren, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15373
2018-09-11 13:46:35 +03:00
Vlad Zagorodniy
03a2a05fc7 [effects/dialogparent] Fix strict mode issues
Summary:
Modification of undeclared variables is illegal in the strict mode, e.g.

```lang=js
mainWindows = window.mainWindows();
```

is illegal.

Test Plan: The Dialog Parent effect works with both QScriptEngine and QJSEngine.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15413
2018-09-10 22:49:49 +03:00
Vlad Zagorodniy
617b4d92fa [effects/magnifier] Fix 1 px gap between magnified area and frame
Summary:
The x-coordinate of the area's left edge and y-coordinate of the area's
top edge are adjusted by 1px leading to a gap between the frame and
magnified area. Because area has type of QRect, we have to adjust only
coordinates of the right and bottom edge by 1 px.

Because QRectF::right() == QRectF::x() + QRectF::width(), we can use
QRectF, which leads to more cleaner code because we don't need to do 1px
adjustments.

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

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

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15275
2018-09-10 13:08:25 +03:00
l10n daemon script
62d659b90f 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-09-07 06:02:56 +02:00
Vlad Zagorodniy
3a46b3707a [effects/slide] Use QOverload
Summary: With QOverload the code is slightly cleaner.

Test Plan: Compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15300
2018-09-05 21:01:43 +03:00
l10n daemon script
ce31ac08d4 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-09-04 06:05:23 +02:00
l10n daemon script
1f4682f249 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-09-02 05:50:35 +02:00
Vlad Zagorodniy
624a453109 Clean up includes
Summary:
* effects.h includes client.h and forward declares Client, both at the
  same time. Thus, delete the include;

* the blur effect includes effects.h. That, most likely, is a leftover
  after 3f5bf65a9e.

Test Plan: Compiles.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15191
2018-08-31 22:58:11 +03:00
Andrius Štikonas
f96bea7c73 Fix capitalization typo. 2018-08-31 16:29:40 +00:00