Commit graph

15651 commits

Author SHA1 Message Date
Martin Flöser
5cb91762be [aurorae] Mark the render QQuickWindow as frameless
Summary:
On Wayland aurorae was creating a lot of stress for the system and
basically turning the system unusable in a short time. This was due to
a recursion starting to create OpenGL contexts. The window created a
decoration (aurorae) which created a QQuickWindow. For that KWin creates
an internal window which in turn triggers the creation of a window
decoration and so on and on.

By simply setting the render QQuickWindow as frameless we can prevent
this recursion.

Test Plan: Tested on Wayland and X11. On Wayland the recursion is gone.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6726
2017-07-17 16:51:04 +02:00
Martin Flöser
06a558e3de [platforms/x11] Quit the OpenGL Freeze protection thread on shutdown
Summary:
Weird NVIDIA behavior fixup part 2. Now that we do no longer freeze when
NVIDIA decides to create an OpenGL error on startup
(aefb5f4dd9), we experience a new issue.
KWin is terminating (no idea why, [1]) and at the same time the OpenGL freeze
protection thread is still running. So far we did not terminate the
thread on shutdown and thus we hit an abort in Qt.

This change ensures that we properly terminate the thread on shutdown.

[1] My current theory is that games terminate KWin, common pattern of
bug reports is "steam".

BUG: 382283
FIXED-IN: 5.10.4

Test Plan:
Tortured KWin by making sure I go through the code path,
saw the abort without the patch, no more abort with the patch

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6735
2017-07-16 18:04:17 +02:00
Martin Flöser
58322c2778 Fix s_ck2ActiveProperty value 2017-07-15 11:01:03 +02:00
Roman Gilg
d4423186b9 [platforms/drm] Delete buffer on all errors in present
Summary:
When returning early in DrmOutput::present() because of some error KWin
didn't delete the proposed buffer, therefore not releasing the surface
lock of the GBM buffer to the EGL surface.

This patch makes sure that on any error in present we cleanup the proposed
DrmBuffer.

Reviewers: #kwin

Subscribers: #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6660
2017-07-14 13:42:52 +02:00
Roman Gilg
a49ba5054f [logind] Correct property name to fix logind session
Summary:
In 6ebc3d65f0 a small naming mistake led to Wayland session with
logind not working anymore. Patch to make it work again.

Also rename the variables because what they describe is a state
and not an action.

Reviewers: #kwin

Subscribers: #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6659
2017-07-14 13:36:48 +02:00
Martin Flöser
672cae9a7d Implement support for restricted move area on Wayland
Summary:
This change implements a missing TODO to generate the restricted move
area for windows with struts (aka panel) on Wayland.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D6611
2017-07-11 17:52:01 +02:00
Martin Flöser
14c8440f11 Restrict move resize area only on the screen the strut window is on
Summary:
By allowing panels between screens in 5.8 to have a strut we created a
"regression" in KWin. KWin always was wrong, just we didn't notice as
neither Plasma nor previously Kicker set a strut on panels between shared
screen edges.

The strut is created from the edge of the overall screen setup. This
means a panel on the left edge of a screen on the right has the strut
starting from the left screen. KWin uses the strut to restrict the move
resize area: a window decoration is not allowed to go below a strut. Thus
it becomes impossible to move the window from the right to the left
screen.

This change tries to solve this problem by only restricting the move area
on the screen the window with the strut is on. E.g. if the window is on
the right screen, the left screen is not affected. Thus it's possible
again to move a window from one screen to the other as the added test
case shows.

Unfortunately there are still corner cases where this won't work
correctly. If the window is on both screens this won't work. It is also a
rather heavy change for KWin and thus it's targeted for master and not
for the 5.10 or the 5.8 branch. If we notice that the patch works well
and doesn't create further issues, it should be considered for
backporting.

BUG: 371199
CCBUG: 370510
FIXED-IN: 5.11

Test Plan: Added test case

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6562
2017-07-11 17:51:39 +02:00
Martin Flöser
6ebc3d65f0 Add ConsoleKit2 support for launching Wayland sessions
Summary: ConsoleKit2 as of version 1.1.1 implements the Session Controller dbus calls required by Kwin to run under Wayland. This patch first looks for the login1 service before attempting the ConsoleKit service.

Test Plan:
On a system running ConsoleKit2, logging into a text console and running:

export $(dbus-launch); export QT_QPA_PLATFORM=wayland; startplasmacompositor

Most of this patch is just shuffling code around to support both logind and CK2.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6291
2017-07-09 17:24:58 +02:00
Martin Flöser
aa4d12a906 [autotests] Ensure TestDontCrashUseractionsMenu uses breeze
The test introduced with 962a2e39ee is
meant to be used with the breeze widget style as that one triggered the
crashy code. Given the test coverage build.kde.org does not run with the
breeze widget style, so enforce this through manual loading.
2017-07-08 10:47:17 +02:00
l10n daemon script
47f414b6d5 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"
2017-07-07 05:51:38 +02:00
l10n daemon script
f2f2d79d86 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"
2017-07-07 04:38:01 +02:00
Martin Flöser
0d941c6e27 Merge branch 'Plasma/5.10' 2017-07-06 21:18:18 +02:00
Martin Gräßlin
88e56f630b Raise minimum required Mesa version to 10.0
Summary:
The currently minimum required Mesa version was 8.0 and KWin had special
caseing for Mesa 9.1. This is no longer realistic, no distribution
provides such an old Mesa version. So let's increase the version a
little bit.

Overview of Mesa versions supported by distributions:
 * Debian stable (stretch): 13.0
 * Debian oldstable (jessie): 10.3
 * Debian oldstable backports: 13.0
 * Debian oldoldstable (wheezy): 8.0
 * Ubuntu 16.04 LTS: 11.2
 * Ubuntu 16.04 LTS updates: 12.0
 * Ubuntu 17.04: 17.0
 * openSUSE Tumbleweed: 17.1
 * openSUSE Leap 42.2: 11.2
 * openSUSE Leap 42.3: 17.0
 * Arch: 17.1
 * Fedora 24: 12.0
 * Fedora 25: 17.0
 * Fedora 26: 17.1

Test Plan: Compiles

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6462
2017-07-06 20:45:58 +02:00
Martin Flöser
962a2e39ee [qpa] Prevent crash due to Surface getting null
Summary:
This is a regression due to changes in Breeze to support Qt 5.8+ behavior
change. KWin's own QPA operates like < Qt 5.7 and breeze was programmed
against that. Due to that it can happen now that Breeze hits code paths
in which KWin does not have a surface.

To trigger one only needed to open the user actions menu twice.

This change adds a test case which simulates the problem and fixes all
crashes happening in the code path.

Most likely shadows are now broken for KWin's own windows, this change is
only to prevent the crash and thus is for 5.10 branch, while shadow
fixing will go to master branch.

BUG: 382063
FIXED-IN: 5.10.4

Test Plan: New test case

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6533
2017-07-06 19:14:15 +02:00
Martin Flöser
46085d3bda Merge branch 'Plasma/5.10' 2017-07-06 19:13:41 +02:00
Martin Flöser
4e9456a857 [platforms/x11] Fix incorrect screen edge approaching with switch desktop on window move
Summary:
There is a regression in WindowBasedEdge::soStopApproaching. Due to
only operate when the edge activates for pointer it is possible that
the cursor polling stays active. Explaining the situation:

1. Activate switch desktop when moving window
2. Start moving a window
3. Move mouse into the approach geometry
-> doStartApproaching activates as we are moving a window
4. stop moving window
-> doStopApproaching early exits as the position does not activate for
   pointer any more - we are not moving a window
-> cursor polling is still connected and whenever mouse enters edge
   approaching is started

The analysis shows that the check whether activates for pointer is wrong
in the case of stop approaching. If the edge started to approach, we also
need to stop approaching.

This change addresses the problem by turning the check into whether the
connection for cursor position update is set.

This is the third bug fix to the X11 screen edge handling after
introducing touch screen edges. This needs more manual testing by
everybody in the Plasma team who is still using X11.

BUG: 381849
FIXED-IN: 5.10.4

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6467
2017-07-06 19:12:28 +02:00
Martin Flöser
24ff93854d [effects/slideback] Ignore windows which are not in visible area
Summary:
The PresentWindows effect does not hide the window to close the selected
window. Instead it moves it outside the visible area. As this is a
"special" KWin window it is on top of the stacking order and needs to be
ignored in the slideback effect.

Instead of doing a special casing for this window the effect is changed
to ignore windows outside the visible area in general. Windows outside
the visible area just don't make sense to block the slideback effect.

BUG: 381402
FIXED-IN: 5.10.4

Test Plan: Slideback works after using Present Windows effect

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6468
2017-07-06 19:12:06 +02:00
l10n daemon script
c8e6d3f09a 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"
2017-07-03 04:22:04 +02:00
Martin Gräßlin
aefb5f4dd9 Prevent endless loop in checkGLError due to GL_CONTEXT_LOST
Summary:
The GL_CONTEXT_LOST flag is not reset when calling glGetError. This of
course bites with: "Thus, glGetError should always be called in a loop,
until it returns GL_NO_ERROR, if all error flags are to be reset."
(see https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetError.xhtml)

As KWin calls checkGLError from init call it can result in a freeze of
KWin. This is a regression reported multiple times since the release of
5.10.3 which enabled GLX_NV_robustness_video_memory_purge extension.

Please note that I am not able to test this change. I do not have an
NVIDIA card and are not hiting the problem. I have no way to simulate
the code. I do not know whether the change will fix the problem, it is
based on what others do. Inspiration for this change is mostly from
mutter: https://git.gnome.org/browse/mutter/commit/?id=d4d2bf0f6c1737256b921c4f1dedd3a95138cab9

BUG: 381870
FIXED-IN: 5.10.3.1

Test Plan: See above, I can only compile check the change

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6464
2017-07-01 19:28:31 +02:00
Martin Flöser
630514d52a Remove roundtrip to XServer from Workspace::xStackingOrder
Introduce a method Workspace::markXStackingOrderAsDirty

Summary:
This method replaces the calls x_stacking_dirty = true in the code base
allowing for further refactoring of that functionality.

Remove roundtrip to XServer from Workspace::xStackingOrder

The method xStackingOrder is only used during a Compositor paint pass.
If the stacking order had changed, the method updated the stacking order
from X by performing a sync XQueryTree. With other words we had a round
trip to the X server directly in the paint pass.

This change rearchitectures this area by making better use of xcb. When
we notice that the stacking order changed and an XQueryTree is needed,
we directly send out the request. When xStackingOrder is finally called,
which normally happens a few milliseconds later, the reply is retreived.
In the worst case it still blocks, but in most cases the roundtrip is
gone.

If the stacking order changed again before accessing xStackingOrder the
running request is cancelled and a new request is issued. So whenever we
get into xStackingOrder it will have the current state.

The updating of the xStackingOrder is moved into a dedicated method and
xStackingOrder invokes it through a const_cast instead of operating on
mutable variables.

Test Plan: Normal system usage, no issues

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6323
2017-07-01 08:21:51 +02:00
Martin Flöser
0d8f11405e Introduce a method Workspace::markXStackingOrderAsDirty
This method replaces the calls x_stacking_dirty = true in the code base
allowing for further refactoring of that functionality.
2017-07-01 08:21:51 +02:00
Martin Flöser
be89c16b38 [platforms/x11] Request OpenGL 2.1 instead of 1.2
Summary:
Mismatch in the major/minor version. Requesting 1.2 doesn't make any
sense given that KWin requires 2.1.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6401
2017-07-01 08:21:34 +02:00
Martin Flöser
adceb9c0c9 Merge branch 'Plasma/5.10' 2017-07-01 08:21:16 +02:00
Martin Flöser
113be5fac8 Restore active client after ending showing desktop
Summary:
Showing desktop requests focus on the desktop window. This means the
active window is reset. When ending showing desktop the state was not
restored.

This change addresses this problem by requesting focus to the best
window.

BUG: 375993
FIXED-IN: 5.10.4

Test Plan: New autotest and manual testing

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6420
2017-07-01 08:20:01 +02:00
Martin Flöser
43816119e9 Skip Shader self test for Mesa >= 17
Summary:
We are getting reports about the shader self test failing in a false
positive way on Mesa 17. We already have such false positve results
for NVIDIA quadro and went with disabling the self test.

Most likely our self test has a problem or the rendering of the first
frame has a problem. But disabling compositing because our rendering of
the first frame is broken, is too much.

Let's better be pro user here and disable the shader self test till we
fixed the root problem.

BUG: 376801
FIXED-IN: 5.10.4

Test Plan: It compiles.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6426
2017-07-01 08:19:31 +02:00
l10n daemon script
07259cfa59 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"
2017-06-28 09:36:23 +02:00
l10n daemon script
c385b15783 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"
2017-06-28 08:27:17 +02:00
Jonathan Riddell
f4b407dbe0 Update version number for 5.10.3
GIT_SILENT
2017-06-27 10:15:39 +01:00
Martin Flöser
3f4995fb9b Refactor the specification of OpenGL context attributes
Summary:
The current way to specify the OpenGL context attributes does no longer
scale as can be seen in D6344. There are too many different context
attribute sets and with every addition we grow lots of copied code. The
chances to introduce errors in that code which is difficult to debug are
very high. As can be seen in the glx backend which defines major 1,
minor 2, but it should be major 2, minor 1.

This change reworks this code by creating a builder class which contains
only an abstract definition of what needs to be in the attributes.
E.g. the version, whether it's robust and so on.

Now we can just have a list of possible attributes in a well described
way:
    auto builder;
    builder.setVersion(3, 1);
    builder.setRobust(true);

All possible builders are added to a list and operated on in a for loop
which tries to creat a context. Once it succeeded it breaks the list.
In addition a debug statement is added which prints out the set of
options which went into the context.

So far this is only done for EGL, GLX can follow once D6344 is merged.

Test Plan: New unit test added, kwin_wayland OpenGL tests run and verified

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6396
2017-06-26 22:13:47 +02:00
Martin Flöser
a6d0bc276d Merge branch 'Plasma/5.10' 2017-06-26 22:11:46 +02:00
Martin Flöser
6267d59731 Properly block the edge also for touch screen edges
Summary:
There was a regression introduced with bug fix eec6afe6 which added
a for pointer events only check also to doUpdateBlocking. Do to that
the edge blocking mechanism didn't work for touch edges.

BUG: 380476
FIXED-IN: 5.10.3

Test Plan:
verified with xwininfo that there is no longer a window when
in full screen. Activated edges through touch and pointer

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6304
2017-06-26 22:06:12 +02:00
Martin Flöser
97fa72ee48 [platforms/x11] Add support for GLX_NV_robustness_video_memory_purge
Summary:
Based on earlier phab-request D2079. Adds the nvidia memory purge
extension to the robust context creation.

BUG: 344326
FIXED-IN: 5.10.3

Test Plan: Only compile tested as I don't have an NVIDIA card.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6344
2017-06-26 22:05:28 +02:00
Oleg Chernovskiy
247ef43f68
Implement software cursor in OpenGL backend
This change is needed for Wayland screen recording apps to work
correctly. With this change the cursor is actually visible using GBM
buffer passing protocol.

Previously OpenGL backend did not support software cursor. If launching
in DRM/OpenGL mode with flicked on software cursor it only rendered
scene, but not the cursor image.

Differential Revision: https://phabricator.kde.org/D6186
2017-06-26 08:46:21 +03:00
Martin Flöser
004c0f3892 [autotests] Test creating core context profile
Extends OpenGL testRestart to once with GLCore and once with legacy.
2017-06-25 09:48:46 +02:00
l10n daemon script
3deb48b252 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"
2017-06-25 05:43:31 +02:00
l10n daemon script
a4d401c028 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"
2017-06-25 04:33:13 +02:00
Martin Flöser
66f0839925 [autotests] Introduce a SceneOpenGL ES test
The SceneOpenGLTest is transformed into a GenericSceneOpenGLTest which
can create either an OpenGL or an OpenGL ES scene based on env variable
which it sets in initTestCase. The env variable to set is passed as a
ctor argument from the SceneOpenGLTest and the new SceneOpenGLESTest.

This allows to easily run the same test code for both our OpenGL and
OpenGL ES compositor.
2017-06-24 21:05:49 +02:00
Martin Flöser
e2682c8405 [autotests] Extend pointer constraints test for closing window of locked pointer 2017-06-24 20:31:50 +02:00
l10n daemon script
8765f5b4c3 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"
2017-06-23 05:46:51 +02:00
l10n daemon script
9265d9fae7 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"
2017-06-23 04:36:21 +02:00
Martin Flöser
152be60cc0 Fix double click on window deco if tripple clicked
Patch by Thomas Lübking which got lost in bugs.kde.org.

BUG: 361241
FIXED-IN: 5.10.3
2017-06-22 07:07:06 +02:00
David Edmundson
b7cb301deb Make shadows work for windows 100% width or height
Summary:
Clients provide shadows as 9 images, which then get split into relevant quads.
To work out the full width we need the size of an item on the left, the middle and the right.

Some elements can be legitiamtely missing so to work out the width of the left edge we need to consider
all 3 of topleft,left,bottomleft.

Currently we checked both corners in case one was missing, but it's legitimate for both to be missing if the shadow
stretches the whole way.

BUG: 380825

Test Plan: Shadow on panel, rest looks the same

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: graesslin, mart, plasma-devel, kwin, #kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D6164
2017-06-20 15:48:41 +01:00
Martin Flöser
763fbf5faf Make Workspace::switchWindow operate on AbstractClient
Summary:
By using AbstractClient instead of Client the method works also for
Wayland windows.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6275
2017-06-20 07:11:57 +02:00
Martin Flöser
92207be904 Use AbstractClient instead of Client in placement
Summary:
There were a few places where we still used Client instead of
AbstractClient. By changing this the placement also works for
Wayland windows in those cases.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6274
2017-06-20 07:11:41 +02:00
Martin Flöser
33ca5025e7 Merge branch 'Plasma/5.10' 2017-06-20 07:11:16 +02:00
Martin Flöser
3b9ccc65a3 [tabbox] Fix casts to Client where it should be AbstractClient
Summary:
A few areas in TabBox perform casts from Toplevel to Client. By casting
to Client instead of AbstractClient the Wayland windows are excluded.

This change addresses the problem by changing the casts where possible.
The only remaining cast to Client is for shading which is not (yet)
supported for Wayland windows anyway.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6273
2017-06-20 07:07:44 +02:00
Martin Flöser
7a3c292612 Fix switch desktop on screenedge while resizing a Wayland window
Summary:
Screenedges only allows to switch desktop while moving window, not
while resizing. There was a special branch which only checked this for
X11 windows but not for Wayland windows.

This change removes a no longer needed cast from AbstractClient to Client
so that the check whether a window is getting resized works for both
X11 and Wayland clients. The cast was introduced in a time when
AbstractClient did not yet support the isResize method.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D6264
2017-06-20 06:58:03 +02:00
Martin Flöser
c45e165514 Fix switch desktop through edge when moving window
Summary:
There was a regression introduced in ScreenEdges when introducing the
activatesForPointer method. It considered the switch desktop on edge,
but not the special case of switch desktop when moving windows. Due to
that the edges did not activate when moving the window.

This change addresses the regression and extends the autotest to ensure
it's properly covered.

BUG: 380440
FIXED-IN: 5.10.3

Test Plan: Manual testing and extended auto test

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6257
2017-06-20 06:57:33 +02:00
Martin Flöser
a6dee74ee4 Workaround Qt regression of no longer delivering events for the root window
Summary:
With qtbase 2b34aefcf02f09253473b096eb4faffd3e62b5f4 we do no longer get
events reported for the X11 root window. Our keyboard handling in effects
like PresentWindows and DesktopGrid relied on that.

This change works around the regression by calling winId() on
qApp->desktop() as suggested in the change. This is a short term solution
for the 5.10 branch.

This needs to be addressed properly by no longer relying on Qt in this
area. KWin already does not rely on Qt for Wayland in that area and is
able to compose the QKeyEvents. This should also be done on X11. It just
needs some more hook up code for xkb, but that's needed anyway to improve
modifier only shortcuts and friends.

BUG: 360841
FIXED-IN: 5.10.3

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6258
2017-06-20 06:56:52 +02:00
Martin Flöser
56e681823b [autotest] Disable default TabBox on touch screen edge in ScreenEdgeClientShowTest
Not needed and the QML doesn't work well in tests.
2017-06-19 21:54:11 +02:00