Commit graph

16695 commits

Author SHA1 Message Date
Marco Martin
23dc03f734 support decorations from lookandfeel
Summary:
the Lookand Feel kcm already applies decorations to kwin, allow to
read them as defaults for the case of distribution customization
where a different lnf with a different deco is wanted

Test Plan: tested to start kwin with a different lnf which loads an aurorae decoration

Reviewers: #plasma, #kwin, davidedmundson

Reviewed By: #plasma, #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18261
2019-01-16 10:40:54 +01:00
David Edmundson
7c15bc7765 [kcmkwin/kwindesktop] Fix error in desktop layout indicator initial state
Summary:
kcm.osdTextOnly is the inverse of "show desktop layout indicators"

The save was inversed, the load was not.

Also port from onCheckedChanged to onToggled as that's emitted only on
user changes and not on binding re-evaluation.

BUG: 403150

Test Plan:
Toggled it
Reopened KCM
Checked kwinrc

Reviewers: #kwin, ngraham

Reviewed By: ngraham

Subscribers: ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18272
2019-01-15 21:52:28 +00:00
Vlad Zagorodniy
de04d362da [kcmkwin/rules] Return absolute path of decoration color scheme
Summary:
We need to return the absolute path instead of base name so decoColorToCombo
can return the correct index.

Test Plan:
* Go to System Settings > Window Management > Window Rules;
* Create a new rule for Konsole to force the Oxygen color scheme,
  close the dialog, and click the Apply button;
* Open the rules dialog (you don't have to modify anything), click OK button, then Apply button.

Without this patch, Breeze color scheme will be forced after the
last step.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: graesslin, broulik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17655
2019-01-14 22:05:04 +02:00
David Edmundson
2df9d22a08 Add high DPI support to internal KWin windows
Summary:
So far we didn't try to do high DPI on kwin internal windows, such as
the user context menu and tab bars and whatever.

Due to wayland scaling they were the correct phyiscal size but upscaled.
This patch fixes our QPA to enable Qt's high-dpi support.

BUG: 402853

Note icons are still low res. This is because the global
QGuiApplication::devicePixelRatio which is the max of all connected
screens is static for the duration of the app. QIcon uses this when
determining the DPR to use. This will require a Qt change.

Test Plan:
Ran at 2x on my normal DPI screen (as that's easier to see anything)
* User action menu is high DPI
* Window deco tooltips are still fine
* Tab switcher is high DPI
* Overlay in present windows Desktop grid are still ok

Reviewers: #kwin

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18042
2019-01-14 13:59:05 +00:00
l10n daemon script
b7f6e57eff 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"
2019-01-14 05:39:00 +01:00
Yuri Chornoivan
d08950feea Fix minor Doxygen issues 2019-01-13 09:22:11 +02:00
Vlad Zagorodniy
7934c03ac2 Drop Phase2Data constructors
Summary:
We initialize all fields of Phase2Data at once, so the constructors seem
to be redundant.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18207
2019-01-12 16:31:38 +02:00
Martin Flöser
33c7edaaf4 Use reserve on QVector<Phase2Data>
Summary:
We know that the maximum size is the number of windows in stacking
order. It might be that some are skipped as they are not ready for
painting, but overall it's better to reserve a little bit too much
memory than to have a growing QVector.

Test Plan: Compiles

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18208
2019-01-12 15:16:33 +01:00
Yuri Chornoivan
d17a3ff88f Fix minor Doxygen issues 2019-01-12 12:31:32 +02:00
Martin Flöser
825aa4ac38 [platform/virtual] Drop support for vgem and rendernode
Summary:
Instead we depend on the surfaceless platform for which we recently
added support. Thus the plugin does not need to use gbm and udev
anymore. So simplifies a lot.

Test Plan: ctest (prior to breaking change) passes

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18160
2019-01-12 07:37:25 +01:00
Martin Flöser
c2c92fab51 Ensure the Compositor does not start during termination
Summary:
The SceneOpenGLES test was starting to randomly crash on my system. On
investigation I observed that there was a graphics reset ("Attempting to
reset compositing.") which triggered a delayed restart of the
compositor. This even was only processed while waiting for XWayland to
terminate. Which resulted in a crash in KWin::getXServerVersion as the
xcb connection broke.

It makes no sense to setup the compositor again during application
shutdown. Thus the dtors set a flag that they are terminating the
application and Compositor::setup is checking for it.

Test Plan: Test no longer crashes, although it goes through the crashing path

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18015
2019-01-12 07:36:55 +01:00
Martin Flöser
99df3c82f3 [autotests] Don't check whether there is a /dev/dri/card0
Summary:
With EGL_MESA_platform_surfaceless we don't need a dri device anymore.
So we don't need to skip the tests if the device is missing. Instead the
tests verify that OpenGL compositing is used if requested.

Test Plan: ctest passes

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18014
2019-01-12 07:36:28 +01:00
Martin Flöser
b1d753d7a6 Cast to AbstractClient instead of Client in Toplevel::setReadyForPainting
Summary:
TabGroup is nowadays in AbstractClient so the cast to Client is
incorrect.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17898
2019-01-12 07:35:59 +01:00
Martin Flöser
2799f69533 Move groupTransient and group from Client to AbstractClient as virtual
Summary:
The default implementations just return false/nullptr. The advantage of
having this in AbstractClient is that we can reduce the needed casts
from AbstractClient to Client in core as can be seen in this change.

There are more cases which can be improved thanks to this refactoring
which will follow in dedicated commits.

Test Plan: ctest passes

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17890
2019-01-12 07:35:18 +01:00
Vlad Zagorodniy
548626bb4c Use QVector in paintGenericScreen
Summary:
Given that QList<T> will allocate items on the heap when sizeof(T) is
bigger than sizeof(void *), which is the case for Phase2Data, use
QVector instead.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18198
2019-01-12 01:19:36 +02:00
Vlad Zagorodniy
4fa98b32e9 Simplify paintSimpleScreen
Summary:
Phase2Data already includes the scene window, so we don't have to store
it again in QPair.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18188
2019-01-12 01:19:36 +02:00
Filip Fila
81781683d3 [kcmkwin/decoration] Add ellipsis to window decoration search
Summary: This patch adds an ellipsis to the search function in Window Decorations.

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

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

Subscribers: kwin

Tags: #kwin

Maniphest Tasks: T10258

Differential Revision: https://phabricator.kde.org/D18050
2019-01-11 17:42:09 +01:00
David Edmundson
67bfad001d [autotests] Update virtual desktop layout after load
Summary: This matches the behaviour of workspace.cpp on initial load.

Test Plan: Test now passes

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18183
2019-01-11 14:19:09 +00:00
Yuri Chornoivan
9dbb74afb7 Fix minor Doxygen issues 2019-01-11 15:36:22 +02:00
Vlad Zagorodniy
4fac71d697 Use appropriate sequence algorithms in IdleInhibition
Summary: This simplifies code a little bit.

Test Plan: Compiles, existing tests pass.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17353
2019-01-11 15:28:28 +02:00
Vlad Zagorodniy
2e2a462733 [wayland] Don't honor the idle inhibitor object if the surface is not visible
Summary:
Currently, our implementation of zwp_idle_inhibitor_v1 is not fully
spec-compliant. If the associated surface is not visible, we still
honor the idle inhibitor object.

This change addresses those spec-compliance issues. If a surface is
minimized or it's not on the current virtual desktop, then the
associated inhibitor object won't be honored by KWin.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17343
2019-01-11 15:14:16 +02:00
l10n daemon script
8f12ba90b9 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"
2019-01-11 05:41:32 +01:00
David Edmundson
b55d276994 Cleanup virutal desktops in deleted
Summary:
virtual desktops can be destroyed, active clients update, but deleted
keeps a cache.

Someone needs to do cleanup to avoid dangly pointers.

Test Plan:
I couldn't find a case of someone calling desktops mid way through an
animation, so it's only a hypothetical bug.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: graesslin, zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17247
2019-01-10 17:33:08 +00:00
David Edmundson
14b827daaa [kcmkwin/kwindecoration] Fix save of theme name
Summary:
If a user saves a decoration that has a plugin but no theme we currently
delete the entry saving just the plugin/library.

This is an issue as on load we call:

    const QString plugin = config.readEntry("library", s_defaultPlugin);
    const QString theme = config.readEntry("theme", s_defaultTheme);

That would give us a non-default library with the default theme name,
which would be invalid.

If compiled with Breeze s_defaultTheme is blank so this ends up being
effectively the same thing. In the normal case it will neither break
nor fix anything.

Test Plan:
None.
Just happened to see it when doing a code review.

Reviewers: #kwin, vpilo

Reviewed By: vpilo

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18146
2019-01-10 15:30:59 +00:00
David Edmundson
ba7aecfe53 [scripting] Avoid threading issues when loading from a file
Summary:
KWin::Script::loadScriptFromFile ran in it's own thread and accessed
member variables of KWin::Script without any guards.

Potentially script could be destroyed whilst the file is loading.

Rather than adding mutexes everywhere, this patch scopes the QFile
object to be local to the threaded function making it independent.

BUG: 403038

Test Plan: Ran a script from a file

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18126
2019-01-09 23:37:37 +00:00
Vlad Zagorodniy
fbe219172a Drop XFixes include in cursor.cpp
Summary:
We no longer need to include xcb/xfixes.h in cursor.cpp because
X11Cursor moved to its own file.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18133
2019-01-09 22:29:45 +02:00
Marco Martin
c65d9b1a90 fix build 2019-01-09 10:12:57 +01:00
Marco Martin
e983319d0d Fix changing the number of rows via the dbus protocol
Summary:
* save changes to the config files when the layout is saved
* :name() works even if netrootinfo isn't there
* as soon a rootinfo is set, connect all the desktops with name changes

Test Plan:
* tested with the kcm to add, remove and rename desktops, all of that works
* setting the number of rows still only partly works: kwin notices it but
the pager doesn't notice, a plasma restart is needed

Reviewers: #plasma, #kwin, hein, davidedmundson, graesslin

Reviewed By: #plasma, #kwin, hein, davidedmundson, graesslin

Subscribers: zzag, graesslin, davidedmundson, ngraham, kwin

Tags: #kwin

Maniphest Tasks: T4457

Differential Revision: https://phabricator.kde.org/D17265
2019-01-09 10:10:39 +01:00
Vlad Zagorodniy
be3ab3871e [libkwineffects] Overhaul AnimationEffect's documentation
Summary: This change reformats the documentation so it's more easier to read it.

Test Plan:
Generated Doxygen documentation, started Python's Simple HTTP server, navigated
to AnimationEffect's documention, haven't noticed any serious issues.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: graesslin, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17832
2019-01-08 20:08:38 +02:00
David Edmundson
bbb67f2675 [plugins/qpa] Commit wl_surface when flipping FBOs
Summary:
Even though the buffer is passed through a side channel some properties
we might use are double-buffered on the surface commit.

Test Plan: Used by unit test InternalWindowTest::testScale in linked commit

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18085
2019-01-08 15:51:47 +00:00
David Edmundson
03f79868f5 [platforms/virtual] Add API to set scale in virtual backend
Summary: For unit test purposes

Test Plan: Used by unit test InternalWindowTest::testScale in linked commit

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18086
2019-01-08 15:51:33 +00:00
Valerio Pilo
e6c0680100 [kcmkwin/kwindecoration] Fix visuals of KCM decorations' buttons tab
Summary:
BUG: 346222
BUG: 399992
BUG: 356076
FIXED-IN: 5.15

The QML changes make the tab look and feel less awful:
* make the fake window borders stand out less
* add margins to drop area to make it easier to drop buttons on the title bar (fixing 346222)
* change cursor to a non-pointing one [1]

[1] Drag&drop: When dropping, we receive the position of the button being dropped,
not of the cursor. The two can be far (when starting drag by moving the cursor fast):
which makes the whole experience very confusing, as the user means to drop at cursor location.

Test Plan: Tested drag/drop: same (messy) behavior as before, but can now drop more loosely around titlebar items

Reviewers: #vdg, #kwin, ngraham

Reviewed By: #vdg, ngraham

Subscribers: davidedmundson, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17982
2019-01-08 15:15:56 +01:00
Vlad Zagorodniy
aaaca19b0e [kcmkwin/desktop] Add animation option back
Summary:
The "new" animation option no longer uses hard coded effects, which
means one could install a third party virtual desktop switching animation,
for example from store.kde.org, and it will be displayed in the KCM.

Test Plan: {F6503565}

Reviewers: #kwin, #vdg, ngraham, davidedmundson

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

Subscribers: davidedmundson, hein, ngraham, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17766
2019-01-08 15:49:36 +02:00
Vlad Zagorodniy
c3fd6413b9 [kcmkwin] Move effects model into a shared library
Summary:
The main motivation for moving it into a shared library is to share the
model between Desktop Effects and Virtual Desktops KCM.

The extracted model is quite the same as the one in Desktop Effects KCM,
except some minor changes, e.g. rename loadEffect and syncConfig to more
convenient names, add comments, some whitespace changes, fix coding
style in some parts, etc.

Test Plan: effectModelTest passes, Desktop Effects KCM works.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: hein, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17765
2019-01-08 15:49:20 +02:00
Vlad Zagorodniy
30b257be08 [autotests] Test popup open/close animations
Summary:
The new test is similar to testToplevelOpenCloseAnimation. The
main purpose of this test is to verify that the Fading Popups effect
animates all sorts of popups, e.g. popup menus, tooltips, etc.

testAnimateUserActionsPopup is skipped for now because stuff
that animates unmapped clients is broken.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17992
2019-01-08 15:48:22 +02:00
Vlad Zagorodniy
ef7b553cb4 [libkwineffects] Port the remaining bits of API to dynamic dispatch
Summary:
7834bec52a missed to port minimize and
unminimize to dynamic dispatch. In addition to that, we don't benefit
from QMetaObject::invokeMethod so port addRepaint and addLayerRepaint
to dynamic dispatch as well.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18049
2019-01-07 21:40:45 +02:00
Vlad Zagorodniy
3f13a493c8 [autotests] Destroy main window in ToplevelOpenCloseAnimationTest::testDontAnimatePopups
Summary: Be nice and destroy all created windows in testDontAnimatePopups.

Test Plan: The test still passes.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D18037
2019-01-07 15:09:22 +02:00
Nate Graham
d288276269 [kcmkwin/compositing] Port Effects KCM to QQC2
Summary:
This patch ports the Effects KCM to QQC2, which yields the following benefits:
1. General performance enhancements of only using QQC2 rather than a mix of 1 and 2
2. Some code simplification is possible
3. Improves the appearance of the checkable menu items in the dropdown menu, fixing https://bugs.kde.org/show_bug.cgi?id=402701
4. Improves the appearance when using a fractional scale factor, fixing https://bugs.kde.org/show_bug.cgi?id=396725
5. Fixes the incorrect size when opened from `kcmshell5`

Along the way, two visual changes are introduced as a by-product of porting:
1. The scrollbar is inline, so it overlaps some of the buttons in the content. This is somewhat undesirable, but adopting a Kirigami scrollview would fix this.
2. The button that displays a dropdown menu no longer has a downward-pointing arrow to indicate as such. This is not my preference, but there's a benefit to being consistent, and eventually we could can change this in one place to impeove the appearance of buttons that display dropdown menus everywhere in one fell swoop.

BUG: 396725
BUG: 402701
BUG: 396076
FIXED-IN: 5.15.0

Test Plan:
All functionality still works

In System Settings, showing improved checkable menu item appearance:
{F6523385}

In `kcmshell` at 1x scale:
{F6523386}

In `kcmshell` at 1.5x scale:
{F6523387}

Reviewers: #kwin, #plasma, davidedmundson

Reviewed By: #kwin, #plasma, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17928
2019-01-06 16:09:07 -07:00
l10n daemon script
90306f5c08 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"
2019-01-06 05:42:41 +01:00
Vlad Zagorodniy
72b9a75cd7 [autotests] Avoid useless waits in testToplevelOpenCloseAnimation
Summary:
Use QTRY_VERIFY instead of qWait + QVERIFY to avoid useless waits.
Effects like scale or glide don't last longer than 200ms.

Test Plan:
Before:
    $ dbus-run-session ctest -R testToplevelOpenCloseAnimation
    Test project /home/vlad/Workspace/KDE/build/kde/workspace/kwin
        Start 123: kwin-testToplevelOpenCloseAnimation
    1/2 Test #123: kwin-testToplevelOpenCloseAnimation ...............   Passed    6.43 sec
        Start 124: kwin-testToplevelOpenCloseAnimation-waylandonly
    2/2 Test #124: kwin-testToplevelOpenCloseAnimation-waylandonly ...   Passed    6.33 sec

    100% tests passed, 0 tests failed out of 2

    Total Test time (real) =  12.76 sec

After:
    $ dbus-run-session ctest -R testToplevelOpenCloseAnimation
    Test project /home/vlad/Workspace/KDE/build/kde/workspace/kwin
        Start 123: kwin-testToplevelOpenCloseAnimation
    1/2 Test #123: kwin-testToplevelOpenCloseAnimation ...............   Passed    2.05 sec
        Start 124: kwin-testToplevelOpenCloseAnimation-waylandonly
    2/2 Test #124: kwin-testToplevelOpenCloseAnimation-waylandonly ...   Passed    2.00 sec

    100% tests passed, 0 tests failed out of 2

    Total Test time (real) =   4.05 sec

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17989
2019-01-05 18:32:14 +02:00
Martin Flöser
6b3e55d6f5 Implement isPopupWindow for internal windows
Summary:
Just accessing Qt::Popup WindowFlag.

BUG: 402852

Test Plan: Not tested for the described problematic case

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17981
2019-01-05 13:45:53 +01:00
Martin Flöser
bedd85821f [platforms/virtual] Add support for EGL_MESA_platform_surfaceless
Summary:
Thus we don't require vgem any more which fails with latest mesa.
Kepping the vgem variant as fallback for older systems. See T10245

Test Plan:
SceneOpenGL Test passes without init vgem, not tested with
latest mesa

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17980
2019-01-05 10:48:08 +01:00
Martin Flöser
a3bebb2fb8 Merge branch 'Plasma/5.14' 2019-01-05 09:02:11 +01:00
Martin Flöser
0f489c3521 [platforms/x11/standalone] Pass kxkbconfig to Xkb prior to reconfigure
Summary:
This ensures that KWin gets the same keyboard layout config as is
configured in the session and not a default config.

BUG: 402764
FIXED-IN: 5.14.5

Test Plan:
Xephyr to verify the config is applied, otherwise completely
untested. I don't have an X session.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17967
2019-01-05 08:57:29 +01:00
Roman Gilg
d848c11485 Revert "Remove comparison between signed and unsigned integer expressions warning"
This reverts commit 16e904592a.

The commit has logical errors, corrupting DND on Wayland. Also the solution
with static_cast to solve the compiler warnings is not a sensible one, it just
hides the root problem.

And next time such a change has to go through review!
2019-01-04 20:30:24 +01:00
Krešimir Čohar
b822b5c05d [kcmkwin/compositing] Use ellipsis in Desktop Effects kcm
Summary: This patch introduces the ellipsis used in Krunner, Kicker, Kickoff and Clipboard to Desktop Effects (Kwin).

Test Plan:
Before: {F6522181}
After: {F6522182}

Reviewers: ngraham, #vdg, #kwin, davidedmundson

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

Subscribers: kwin

Tags: #kwin

Maniphest Tasks: T10258

Differential Revision: https://phabricator.kde.org/D17937
2019-01-03 19:52:51 +01:00
David Edmundson
fe47a8d9b9 [effects/slideback] Port away from deprecated EffectWindow::desktop
Summary:
Not only does the function windowsShareDesktop become a lot more complex
with the new desktop cardinality comparing if they share any desktop
isn't actually what we want.

If I have 2 windows on desktop 1 and the lower stacked window is also on
desktop 2, when I switch desktops the focus will change, but we don't
want to animate anything here as on this dekstop it has nothing to slide
in front of.

Instead this patch simply checks both windows are on the current
desktop.

Test Plan:
Loaded a few windows. Some on one, some on more.
Before if a window was on desktop 1&2 it wouldn't animate on 2.

Windows now seem to animate when they should and not when they shouldn't.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17943
2019-01-03 16:47:28 +00:00
Vlad Zagorodniy
1084f162aa [effects/slidingpopups] Port away from deprecated EffectWindow::desktop
Summary:
If a window is not on the current virtual desktop, then it won't be
painted/slided. Thus, we can replace EffectWindow::desktop by
EffectsHandler::currentDesktop.

Test Plan: The effect still works correctly on both X11 and Wayland.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17944
2019-01-03 18:12:50 +02:00
Valerio Pilo
ef1692eea6 [kcmkwin/kwindecoration] Set current decoration index on start
Summary:
Fixes the preselected decoration style on module load.

Also:
* Prevent the module state to be set to modified on resize.
* Fix QML errors in logs.

Reviewers: davidedmundson

Reviewed By: davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17775
2019-01-03 15:26:46 +01:00
David Edmundson
ac45977e9e [wayland] XdgDecoration Support
Summary:
Does something similar to our existing ServerDecoration, but based
around XDG Shell patterns and with a few subtle differneces.

We'll probably still need both in kwin for the forseeable future as GTK3
won't ever change from using the KDE Server Decoration.

Test Plan:
Relevant unit test. It's a bit simpler as spec states
toolkits must follow what the compositor configures if they
bind the interface.

Modified plasma-integration to remove ServerIntegration
(as Qt5.12 has native support) all my windows look and act the same.

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17756
2019-01-01 17:53:48 +00:00