diff --git a/kwin-5.8.7.orig/plugins/platforms/x11/standalone/CMakeLists.txt b/kwin-5.8.7/plugins/platforms/x11/standalone/CMakeLists.txt --- a/kwin-5.8.7.orig/plugins/platforms/x11/standalone/CMakeLists.txt +++ b/kwin-5.8.7/plugins/platforms/x11/standalone/CMakeLists.txt @@ -14,8 +14,10 @@ set(X11PLATFORM_SOURCES ${X11PLATFORM_SOURCES} glxbackend.cpp) endif() +find_package(KF5Crash) + add_library(KWinX11Platform MODULE ${X11PLATFORM_SOURCES}) -target_link_libraries(KWinX11Platform eglx11common kwin Qt5::X11Extras XCB::CURSOR) +target_link_libraries(KWinX11Platform eglx11common kwin Qt5::X11Extras XCB::CURSOR KF5::Crash) if(X11_Xinput_FOUND) target_link_libraries(KWinX11Platform ${X11_Xinput_LIB}) endif() diff --git a/kwin-5.8.7.orig/plugins/platforms/x11/standalone/x11_platform.cpp b/kwin-5.8.7/plugins/platforms/x11/standalone/x11_platform.cpp --- a/kwin-5.8.7.orig/plugins/platforms/x11/standalone/x11_platform.cpp +++ b/kwin-5.8.7/plugins/platforms/x11/standalone/x11_platform.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include @@ -213,13 +214,15 @@ m_openGLFreezeProtection->setInterval(15000); m_openGLFreezeProtection->setSingleShot(true); m_openGLFreezeProtection->start(); + QString configName = kwinApp()->config()->name(); m_openGLFreezeProtection->moveToThread(m_openGLFreezeProtectionThread); connect(m_openGLFreezeProtection, &QTimer::timeout, m_openGLFreezeProtection, - [] { + [configName] { const QString unsafeKey(QLatin1String("OpenGLIsUnsafe") + (kwinApp()->isX11MultiHead() ? QString::number(kwinApp()->x11ScreenNumber()) : QString())); - auto group = KConfigGroup(kwinApp()->config(), "Compositing"); + auto group = KConfigGroup(KSharedConfig::openConfig(configName), "Compositing"); group.writeEntry(unsafeKey, true); group.sync(); + KCrash::setDrKonqiEnabled(false); qFatal("Freeze in OpenGL initialization detected"); }, Qt::DirectConnection); } else {