kwin/plugins/qpa
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
..
abstractplatformcontext.cpp Require Qt 5.7 and remove pre-5.7 code 2017-02-07 20:43:19 +01:00
abstractplatformcontext.h Require Qt 5.7 and remove pre-5.7 code 2017-02-07 20:43:19 +01:00
backingstore.cpp [qpa] Prevent crash due to Surface getting null 2017-07-06 19:14:15 +02:00
backingstore.h
CMakeLists.txt [plugins/qpa] support use of modularized qtplatformsupport from Qt 5.8 2016-10-28 21:12:48 +09:00
integration.cpp Require Qt 5.7 and remove pre-5.7 code 2017-02-07 20:43:19 +01:00
integration.h Integrate QtVirtualKeyboard into KWin/Wayland 2016-06-02 11:26:53 +02:00
kwin.json
main.cpp Maintenance - fixing naming typos 2016-02-09 17:20:12 +01:00
nativeinterface.cpp [qpa] Prevent crash due to Surface getting null 2017-07-06 19:14:15 +02:00
nativeinterface.h [plugins/qpa] Add a roundtrip platform function 2016-03-16 11:10:14 +01:00
platformcontextwayland.cpp [plugins/qpa] Call makeCurrent on the QOpenGLContext instead of the one in the platform context 2016-08-26 07:38:04 +02:00
platformcontextwayland.h
platformcursor.cpp [plugins/qpa] Implement a custom QPlatformCursor 2016-02-17 12:42:12 +01:00
platformcursor.h [plugins/qpa] Implement a custom QPlatformCursor 2016-02-17 12:42:12 +01:00
screen.cpp Implement high DPI support in KWin QPA 2017-04-28 10:23:14 +01:00
screen.h Implement high DPI support in KWin QPA 2017-04-28 10:23:14 +01:00
sharingplatformcontext.cpp [plugins/qpa] Call makeCurrent on the QOpenGLContext instead of the one in the platform context 2016-08-26 07:38:04 +02:00
sharingplatformcontext.h [plugins/qpa] Support SharingPlatformContext on the existing eglSurface and eglconfig 2016-07-20 14:17:11 +02:00
window.cpp [plugins/qpa] Do not replace a valid FBO with an invalid one 2017-04-22 08:17:33 +02:00
window.h Make Wayland::EGL optional again 2015-12-01 07:58:47 +01:00