Commit graph

16125 commits

Author SHA1 Message Date
Vlad Zagorodniy
6f173fc609 Use QHash::value() in EffectWindowImpl::data()
Summary:
The `role` hash key is hashed twice:
* first, when calling `contains` method;
* second, when using `operator[]`.

We can do better by using [QHash::value](http://doc.qt.io/qt-5/qhash.html#value).

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: pino, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13820
2018-07-02 15:08:49 +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
89001b1a5a Don't detach list of damaged windows when sending 'done' events
Summary: Most likely, someone forgot to add `qAsConst`.

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13830
2018-07-02 12:48:22 +03:00
Vlad Zagorodniy
e7d6f12bba Lookup loaded effects only once when building support information
Test Plan: 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/D13837
2018-07-02 12:47:20 +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
Vlad Zagorodniy
a453925306 Fix KDeclarative::setupBindings() deprecation warnings
Reviewers: #kwin, mart

Reviewed By: #kwin, mart

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13835
2018-07-02 12:46:00 +03:00
Vlad Zagorodniy
e0bbf5c87f Use std::transform in libkwineffects implementation part
Summary:
Don't use raw loops, instead, use appropriate algorithm from STL to map
a list of toplevels to a list of EffectWindow.

Test Plan:
Tested Cover switch, Flip switch, Dialog parent, and Dim inactive effect.
They all still work.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13821
2018-07-01 18:19:15 +03:00
Vlad Zagorodniy
e0088b9c9d Use qDeleteAll in destructor of Scene class
Summary:
qDeleteAll can be used to delete values in QMap or QHash. Please notice
that qDeleteAll calls `delete` only for values, not keys.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13822
2018-07-01 18:06:02 +03:00
Vlad Zagorodniy
d82aded4a6 [effects/slide] Port to TimeLine
Summary: Depends on D13740

Test Plan: Switched between virtual desktops, slide animation is still there.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13764
2018-07-01 12:04:43 +03:00
Vlad Zagorodniy
5e24bed369 [effects/cube] Port to TimeLine
Summary: Depends on D13740

Test Plan: "Activated" the desktop cube, animations still work.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13765
2018-06-30 10:52:42 +03:00
Vlad Zagorodniy
0be5010c0a [effects/minimizeanimation] Port to TimeLine
Summary: Depends on D13740

Test Plan: Minimized/Unminimized System Setting window, still works.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13761
2018-06-30 10:41:14 +03:00
Vlad Zagorodniy
138b185889 [effects/magiclamp] Port to TimeLine
Summary: Depends on D13740

Test Plan: Minimized/Unminimized System Setting window, still works.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13762
2018-06-30 10:40:33 +03:00
Vlad Zagorodniy
ee88951b17 [libkwineffects] Add TimeLine helper
Summary:
Most effects use QTimeLine in the following manner

```lang=cpp
if (...) {
    m_timeline->setCurrentTime(m_timeline->currentTime() + time);
} else {
    m_timeline->setCurrentTime(m_timeline->currentTime() - time);
}
```

Because effects do not rely on a timer that QTimeLine has, they can't
toggle direction of the QTimeLine, which makes somewhat harder to write
effects. In some cases that's obvious what condition to use to figure
out whether to add or subtract `time`, but there are cases when it's
not. In addition to that, setCurrentTime allows to have negative
currentTime, which in some cases causes bugs.

And overall, the way effects use QTimeLine is really hack-ish. It makes
more sense just to use an integer accumulator(like the Fall Apart
effect is doing) than to use QTimeLine.

Another problem with QTimeLine is that it's a QObject and some effects
do

```lang=cpp
class WindowInfo
{
public:
    ~WindowInfo();

    QTimeLine *timeLine;
};

WindowInfo::~WindowInfo()
{
    delete timeLine;
}

// ...

QHash<EffectWindow*, WindowInfo> m_windows;
```

which is unsafe.

This change adds the TimeLine class. The TimeLine class is a timeline
helper that designed specifically for needs of effects.

Demo

```lang=cpp
TimeLine timeLine(1000, TimeLine::Forward);
timeLine.setEasingCurve(QEasingCurve::Linear);

timeLine.value(); // 0.0
timeLine.running(); // false
timeLine.done(); // false

timeLine.update(420);
timeLine.value(); // 0.42
timeLine.running(); // true
timeLine.done(); // false

timeLine.toggleDirection();
timeLine.value(); // 0.42
timeLine.running(); // true
timeLine.done(); // false

timeLine.update(100);
timeLine.value(); // 0.32
timeLine.running(); // true
timeLine.done(); // false

timeLine.update(1000);
timeLine.value(); // 0.0
timeLine.running(); // false
timeLine.done(); // true
```

Test Plan: Ran tests.

Reviewers: #kwin, davidedmundson, graesslin

Reviewed By: #kwin, davidedmundson, graesslin

Subscribers: romangg, graesslin, anthonyfieroni, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13740
2018-06-30 09:58:11 +03:00
Friedrich W. H. Kossebau
27cd0bc5d0 Remove unneeded QT definitions
* QT_USE_FAST_OPERATOR_PLUS is subset of toplevel-set QT_USE_QSTRINGBUILDER
* QT_USE_FAST_CONCATENATION got dropped pre-Qt5
2018-06-29 17:11:18 +02:00
l10n daemon script
1bd35abebb 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-06-29 05:22:38 +02:00
Roman Gilg
0bd5eff862 Make keyboard focus a pointer constraints necessity
Summary:
This patch changes KWin's pointer constraining behavior by only allowing
constraints if the surface has keyboard focus. In case the client activation
state changes, it rechecks it.

Test Plan:
Manually with the pointer constraints test application and opening the
launcher by pressing meta. Also amended autotest.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, davidedmundson, kwin

Tags: #kwin

Maniphest Tasks: T8923

Differential Revision: https://phabricator.kde.org/D13492
2018-06-26 16:45:39 +02:00
l10n daemon script
ea05ac380b 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-06-26 05:41:33 +02:00
Vlad Zagorodniy
f977e60850 [libkwineffects] Save value of the managed property during construction of EffectWindow
Summary:
When windowClosed signal is emitted, effects can't distinguish managed
windows from unmanaged windows(e.g. combo box popups, popup menus, etc).
This leads to dirty hacks like IsXXXWindow. Also, there's a big chance
that such hack can introduce more bugs and overall this makes harder to
write/maintain effects.

This change proposes to save value of managed property during
construction of EffectWindow. So, its value is preserved with Deleted.

Test Plan: Manually.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13690
2018-06-24 17:43:11 +03:00
Vlad Zagorodniy
95a2c3bf76 [libkwineffects] Emit a signal when active fullscreen effect changed
Summary:
Behaviour of some effects depends on presence of active fullscreen effect.
For example, Dim Inactive effect brightens windows if there is an active
fullscreen effect. If active fullscreen effect has been changed, these effects
might need to do some setup work, e.g. schedule repainting, toggle direction
of a timeline, etc.

For what it's worth, because the Dim Inactive effect doesn't schedule
repainting after leaving Desktop Grid, windows aren't dimmed back. One
need to move mouse to trigger dimming.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13701
2018-06-24 16:13:09 +03:00
David Edmundson
29ca2a1e47 Merge branch 'Plasma/5.13' 2018-06-24 13:29:03 +01:00
David Edmundson
463ccfc8bb Revert "Workaround crash in Aurorae destruction"
This reverts commit 275b7ee0f4.

BUG: 395732
2018-06-24 13:28:23 +01:00
l10n daemon script
47b27b1885 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-06-24 07:14:49 +02:00
l10n daemon script
e69da579f6 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-06-24 05:32:09 +02:00
David Edmundson
c857c03561 Load Kwin's internal cursors for the highest resolution of attached monitors
Test Plan:
Hovered over decoration
Looked super crystal clear
Same physical size as when I hover over window contents (which had a buffer scale of 1)

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13608
2018-06-23 23:26:54 +01:00
David Edmundson
1761b75b55 Set correct DPR on wayland cursors received from remote buffers
Summary:
It will then be renderered appropriately when painting to the output
buffer.

Test Plan: Updated unit test, plus used with other relevant patches

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13606
2018-06-23 18:17:51 +01:00
David Edmundson
6bdfea6d2f Remove concept of resolution dependent cursors
Summary:
It's not a concept that makes sense with proper scaling.

Cursor should be the big if you chose a big size, small if you choose a small size,
regardless of what output it happens to be on.

Test Plan:
Set size to 0
Ran kwin
Cursor size was fine

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13607
2018-06-23 18:15:41 +01:00
David Edmundson
2cc42ecc12 DRM cursor scaling
Summary:
We pass the buffer scale of the cursor through QImage::devicePixelRatio.

When copying the cursor with QPainter use Qt's in-built functionality to
handle resizing the cursor pixmap as necessary to match the screen.

As we're now resizing the cursor, the hotspot needs translating from
logical to device co-ordinates.

Test Plan: Used with associated patches

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13605
2018-06-23 18:15:41 +01:00
David Edmundson
9ff1f77e8e Support cursor scaling in X windowed backend
Test Plan:
Ran kwin_wayland --windowed  --scale2

Hovered over deco. Got massive and detailed cursor
Hovered over a wayland client (Qt 5.11 not dev)
Got a massive, but slightly blocky cursor

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13642
2018-06-23 18:15:41 +01:00
Vlad Zagorodniy
263503f8ec [effects/slide] Disable "Slide docks"
Summary:
D9638 made docks to slide to "fix" the problem when switching to a
virtual desktop that has a window in full screen mode:

{F5615542}

As it turns out, people don't like this kind of behaviour. Another
problem with sliding of docks is that pager goes away.

This change disables sliding of docks by default. One can enable sliding
of docks by checking "Slide docks" checkbox in slide effect KCM.

Yet, transition to/from virtual desktop with a window in full screen
mode doesn't look great but that's somewhat acceptable:

{F5915681}

//(we don't see issues that are present in the video above because the new slide effect elevates docks if sliding of docks is disabled)//

Test Plan: Switched between virtual desktops, the default panel didn't slide.

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

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

Subscribers: ngraham, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13566
2018-06-23 12:06:08 +03:00
Vlad Zagorodniy
6a175ece48 [libkwineffects] Add keepBelow property to EffectWindow
Summary:
EffectWindow has keepAbove property, but not keepBelow.

This change adds keepBelow property as a counterpart to keepAbove.

Test Plan: Manually.

Reviewers: #kwin, mart

Reviewed By: #kwin, mart

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13650
2018-06-22 12:39:01 +03:00
Vlad Zagorodniy
dcc349c1ef Add some missing properties to Deleted
Summary:
### keepAbove

Some effects(e.g. Dim Inactive) can take keep above state of a window
into account when they are making decision whether to operate on it.
Because Deleted doesn't expose keepAbove property, it will be always
`true`, which is wrong.

### keepBelow

This property was added as a counterpart to keepAbove.

### caption

That's mostly for debugging purposes, e.g.

```lang=cpp
void CoolEffect::windowClosed(EffectWindow *w)
{
    qDebug() << w->caption() << "has been closed";
    qDebug() << "keep above:" << w->keepAbove();
}
```

Test Plan: Manually.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13649
2018-06-22 12:27:39 +03:00
l10n daemon script
f44b04e61e 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-06-21 07:15:30 +02:00
David Edmundson
be5d0f6bac Merge branch 'Plasma/5.13' 2018-06-21 01:50:23 +01:00
David Edmundson
275b7ee0f4 Workaround crash in Aurorae destruction
Summary:
Workaround QtBug-68997

Deleting of a RenderControl/render controlled window triggers deletion
of other queued deleted items, putting KWin in a corrupt state. See Qt
bug report.

Deleting this queued means we know we don't have anything else going on
in the stack which should make this somewhat safe.

BUG: 395346

Test Plan:
Couldn't reproduce original crash. Based purely on the incomplete backtrace and code reading

Set an Aurorae theme. Closed some windows. Things still worked as before

Reviewers: #kwin, #plasma, mart

Reviewed By: #kwin, #plasma, mart

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13614
2018-06-20 09:39:29 +01:00
Vlad Zagorodniy
e9ab34854d [effects] Ignore previous state of WindowForceBlurRole
Summary:
Currently, effects like Maximize, Slide Back have problems with setting
WindowForceBlurRole. They store previous state of WindowForceBlurRole.
This is wrong. Instead they should either ignore previous state of
WindowForceBlur or refcount forced role.

There's no need for refcounting right now. For example, if several effects
force blur or background contrast, they are most likely in a conflict.
Please notice that the Desktop Grid effect uses the Present Windows
effect only to calculate transformations.

Some other problems with the code that sets WindowForceBlurRole:
* Maximize effect stores previous state of WindowForceBlurRole only
  for one window. It ignores the fact that there could be several
  active maximize animations;
* Desktop Grid/Present Windows/Slide back don't clean after themselves.
  So, after using those effects for good amount of times, memory usage
  will bump.

Test Plan:
* Enabled blur for Konsole
* Maximized Konsole
* Activated Present Windows
* Activated Desktop Grid
* Raised another window(to trigger Slide Back)

Reviewers: #kwin, fredrik

Reviewed By: fredrik

Subscribers: fredrik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13479
2018-06-19 15:23:41 +03:00
Jonathan Riddell
e92b9a65d8 Update version number for 5.13.1
GIT_SILENT
2018-06-19 11:12:41 +01:00
Vlad Zagorodniy
64d1b0e93c [effects/slide] Add "Slide desktop background" option
Summary:
Some people may not like the sliding of desktop background. Add
corresponding option to disable the sliding of desktop background.

By disabling the sliding of desktop background and docks, one can
get old slide effect.

{F5912713, layout=center, size=full}

Test Plan:
* Unchecked "Slide desktop background" checkbox, switched desktop;
* Checked "Slide desktop background" checkbox, switched desktop.

Reviewers: #kwin, #plasma, #vdg, mart

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

Subscribers: romangg, abetts, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13542
2018-06-19 12:35:53 +03:00
l10n daemon script
1879303d5b 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-06-19 06:02:57 +02:00
Alex Nemeth
982316072d [libkwineffects/kwinglutils] Calculate correct srcY0 and srcY1 in GLRenderTarget::blitFromFramebuffer
Summary:
There are several spaces that have to be considered in `GLRenderTarget::blitFromFramebuffer`:
* KWin logical space: the origin is located at the global top-left corner
* display space: the origin is located at the top-left corner of monitor/display
* OpenGL screen space: the origin is located at the bottom-left corner of monitor/display

Given `s`, which is in the KWin logical space, we have to transform it to the display space, then to the OpenGL screen space:

* KWin logical space -> display space: `y' = s.y() - s_virtualScreenGeometry.y()`
* display space -> OpenGL screen space: `y'' = s_virtualScreenGeometry.height() - y'`

Overall, `srcY0` and `srcY1` should be written as follows:

```
srcY0 = s_virtualScreenGeometry.height() - (s.y() - s_virtualScreenGeometry.y() + s.height())
srcY1 = s_virtualScreenGeometry.height() - (s.y() - s_virtualScreenGeometry.y())
```

Test Plan:
Tweak background contrast effect to use GLRenderTarget::blitFromFramebuffer

```
diff --git a/effects/backgroundcontrast/contrast.cpp b/effects/backgroundcontrast/contrast.cpp
index f920fcd88..5247d83b8 100644
--- a/effects/backgroundcontrast/contrast.cpp
+++ b/effects/backgroundcontrast/contrast.cpp
@@ -447,11 +447,10 @@ void ContrastEffect::doContrast(EffectWindow *w, const QRegion& shape, const QRe
     GLTexture scratch(GL_RGBA8, r.width() * scale, r.height() * scale);
     scratch.setFilter(GL_LINEAR);
     scratch.setWrapMode(GL_CLAMP_TO_EDGE);
-    scratch.bind();

-    const QRect sg = GLRenderTarget::virtualScreenGeometry();
-    glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, (r.x() - sg.x()) * scale, (sg.height() - sg.y() - r.y() - r.height()) * scale,
-                        scratch.width(), scratch.height());
+    GLRenderTarget scratchTarget(scratch);
+    scratchTarget.blitFromFramebuffer(r);
+    scratch.bind();

     // Draw the texture on the offscreen framebuffer object, while blurring it horizontally

```

GLRenderTarget::blitFromFramebuffer without this change:
{F5817883, layout=center, size=full}

Reviewers: #kwin, fredrik, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kpiwowarski, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12452
2018-06-18 19:05:23 +01:00
Alex Nemeth
2419c949bf Fix multimonitor blur
Summary:
On wayland blur on secondary monitor would not render correctly.

BUG: 393723
Depends on D12452

Test Plan:
 - use more than one output
 - log in in a wayland session
 - open a transparent window (for example: Konsole with transparent and blur enabled profile)
 - drag the window to another screen
 - blurs the content under the window corretly

Reviewers: #kwin, graesslin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: apol, zzag, davidedmundson, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12678
2018-06-18 19:05:23 +01:00
David Edmundson
6f6f224315 Merge branch 'Plasma/5.13' 2018-06-18 15:37:05 +01:00
Alex Nemeth
be3168b832 [effects/blur] Check for blitting support
Summary:
In D12678 blur was changed to use `blitFromFramebuffer()` instead of `glCopyTexSubImage2D()`
Now it checks if the GPU supports it.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13246
2018-06-18 15:36:17 +01:00
Alex Nemeth
37f4c54d17 Fix blur on Wayland when scaling is used
Summary:
Blur should now work on Wayland when scaling is used.
This does not affect X11 as `GLRenderTarget::virtualScreenScale()` is always 1 on X11

BUG: 391387
Depends on D12678

Test Plan:
  - log in in a Wayland session
  - turn display scaling to 2x
  - open a transparent window (for example: Konsole with transparent and blur enabled profile)
  - blurs the content under the window corretly

Reviewers: davidedmundson, #kwin

Reviewed By: davidedmundson, #kwin

Subscribers: romangg, apol, zzag, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12700
2018-06-18 15:35:41 +01:00
Vlad Zagorodniy
7bfaa6e913 [effects] Use more effectData() in BuiltInEffects
Summary:
While BuiltInEffects has effectData() function, many functions repeat
s_effectData.at(index(effect)), which is what effectData() is doing.

By using effectData(), we'll get rid of those repetitions and maybe make
easier transition to other underlying data structure that stores metadata
for builtin effects.

Test Plan: Compiles, all enabled builtin effects are loaded and working.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13587
2018-06-18 16:28:57 +03:00
Vlad Zagorodniy
168109f3bb [effects/blur] Clean up shader code
Summary:
* Drop abstract BlurShader class
* Delete evil "using namespace KWin"
* Fix includes
* Use smart pointers
* Turn BlurShader into a QObject
* Fix coding style
* Add missing default cases
* Use default member initialization
* Delete methods that are used only once
* Use more const
* Use QRect::{top,right,bottom,left} methods in the setBlurRect method

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13110
2018-06-18 15:50:52 +03:00
l10n daemon script
d8addb6b3a 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-06-18 07:25:30 +02:00
l10n daemon script
6b0d2fc027 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-06-18 05:35:02 +02:00
Vlad Zagorodniy
586460dbfc [kcmkwin/kwindesktop] Make Slide effect configurable
Summary:
Even though the Slide effect has a KCM, it's not possible to configure
it [slide effect] from the virtual desktops KCM.

This change addresses the problem above.

### Before

{F5912774, layout=center, size=full}

### After

{F5912775, layout=center, size=full}

BUG: 395377

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13544
2018-06-17 19:38:32 +03:00
Roman Gilg
ddb44b4383 Small code style improvement 2018-06-14 15:48:52 +02:00
Vlad Zagorodniy
8593823f6c [effects/fallapart] Fade out window parts
Summary:
Window parts disappear very rapidly, it feels not really pleasant.
Animate also opacity so window parts disappear over time. This
makes fall apart animation more pleasant.

### Before

{F5912359}

### After

{F5912360}

Test Plan:
* Enabled fall apart effect
* Closed System Settings

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

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

Subscribers: ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D13528
2018-06-14 16:38:12 +03:00