From 1db00cc6e94b90c08090bb5b8c406622946c4ae5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 31 Jan 2019 16:00:27 +0000 Subject: gentoo resync 31.01.2019 --- .../kwin/files/kwin-5.14.3-kcrash-init.patch | 48 -------- .../files/kwin-5.14.3-resizewindows-crash.patch | 72 ----------- .../files/kwin-5.14.3-virtualdesktop-crash.patch | 137 --------------------- 3 files changed, 257 deletions(-) delete mode 100644 kde-plasma/kwin/files/kwin-5.14.3-kcrash-init.patch delete mode 100644 kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch delete mode 100644 kde-plasma/kwin/files/kwin-5.14.3-virtualdesktop-crash.patch (limited to 'kde-plasma/kwin/files') diff --git a/kde-plasma/kwin/files/kwin-5.14.3-kcrash-init.patch b/kde-plasma/kwin/files/kwin-5.14.3-kcrash-init.patch deleted file mode 100644 index fc9c3007f840..000000000000 --- a/kde-plasma/kwin/files/kwin-5.14.3-kcrash-init.patch +++ /dev/null @@ -1,48 +0,0 @@ -From aace9b1675819feab81d50f694391c7d854d9822 Mon Sep 17 00:00:00 2001 -From: Harald Sitter -Date: Fri, 16 Nov 2018 12:50:53 +0100 -Subject: actually initialize kcrash for xclipboardsync - -Summary: -to successfully use kcrash when linking with as-needed (which is a default -flag on many linux distros) one also needs to call KCrash::initialize. - -https://markmail.org/thread/zv5pheijaze72bzs - -Test Plan: builds; correctly links kcrash - -Reviewers: davidedmundson - -Reviewed By: davidedmundson - -Subscribers: kwin - -Tags: #kwin - -Differential Revision: https://phabricator.kde.org/D16923 ---- - helpers/xclipboardsync/main.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/helpers/xclipboardsync/main.cpp b/helpers/xclipboardsync/main.cpp -index 2f06e9c..1a5e5ee 100644 ---- a/helpers/xclipboardsync/main.cpp -+++ b/helpers/xclipboardsync/main.cpp -@@ -19,6 +19,7 @@ along with this program. If not, see . - *********************************************************************/ - #include "waylandclipboard.h" - -+#include - #include - - #include -@@ -40,6 +41,7 @@ int main(int argc, char *argv[]) - argv[0], qPrintable(app.platformName())); - return 1; - } -+ KCrash::initialize(); - new WaylandClipboard(&app); - return app.exec(); - } --- -cgit v0.11.2 diff --git a/kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch b/kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch deleted file mode 100644 index 37963c8395c5..000000000000 --- a/kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 406b70b04e093c13faf763e2d885797ae037d806 Mon Sep 17 00:00:00 2001 -From: Vlad Zagorodniy -Date: Mon, 12 Nov 2018 17:45:14 +0200 -Subject: [wayland] Don't crash when resizing windows - -Summary: -If you resize a decorated client by using the resize user action(press -Alt + F3 > More Actions > Resize), then KWin will crash because it gets -stuck in an infinite loop (AbstractClient::performMoveResize <-> -ShellClient::setGeometry). - -Here's how KWin gets stuck in that loop: -* when you finish resizing the client, AbstractClient::keyPressEvent - will call AbstractClient::finishMoveResize; -* the first thing that finishMoveResize does is block geometry updates, - then it does some clean up (e.g. reset the value of isMoveResize(), etc), - updates the geometry of the client and when it's done, it will emit - clientFinishUserMoveResized signal; -* when PointerInputRedirection notices that signal, it will call - processDecorationMove on the client, which in its turn will indirectly - call AbstractClient::startMoveResize; -* when it's time to go back to AbstractClient::keyPressEvent, geometry - updates are unblocked and if there are any pending geometry updates, - then ShellClient::setGeometry will be called; -* ShellClient::setGeometry will eventually call ShellClient::doSetGeometry; -* ShellClient::doSetGeometry will call AbstractClient::performMoveResize - because AbstractClient::processDecorationMove indirectly called - AbstractClient::startMoveResize; -* AbstractClient::performMoveResize calls ShellClient::setGeometry; -* (at this point, KWin got stuck in the infinite loop) - -This change swaps setMoveResizePointerButtonDown and finishMoveResize, -so processDecorationMove won't indirectly call startMoveResize. - -BUG: 397577 -FIXED-IN: 5.14.4 - -Reviewers: #kwin, davidedmundson - -Reviewed By: #kwin, davidedmundson - -Subscribers: kwin - -Tags: #kwin - -Differential Revision: https://phabricator.kde.org/D16846 ---- - abstract_client.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/abstract_client.cpp b/abstract_client.cpp -index b4628f2..ed72b9c 100644 ---- a/abstract_client.cpp -+++ b/abstract_client.cpp -@@ -1457,13 +1457,13 @@ void AbstractClient::keyPressEvent(uint key_code) - case Qt::Key_Space: - case Qt::Key_Return: - case Qt::Key_Enter: -- finishMoveResize(false); - setMoveResizePointerButtonDown(false); -+ finishMoveResize(false); - updateCursor(); - break; - case Qt::Key_Escape: -- finishMoveResize(true); - setMoveResizePointerButtonDown(false); -+ finishMoveResize(true); - updateCursor(); - break; - default: --- -cgit v0.11.2 diff --git a/kde-plasma/kwin/files/kwin-5.14.3-virtualdesktop-crash.patch b/kde-plasma/kwin/files/kwin-5.14.3-virtualdesktop-crash.patch deleted file mode 100644 index 4e480a06be8e..000000000000 --- a/kde-plasma/kwin/files/kwin-5.14.3-virtualdesktop-crash.patch +++ /dev/null @@ -1,137 +0,0 @@ -From ad28da84e78c7eb7ff1e608c4819707b2142daea Mon Sep 17 00:00:00 2001 -From: Vlad Zagorodniy -Date: Mon, 5 Nov 2018 14:59:42 +0200 -Subject: [effects/slidingpopups] Don't crash when sliding virtual desktops - -Summary: -If you switch virtual desktops while krunner is sliding in, then -depending on whether your distro strips assert statements away, -KWin can crash. - -The reason why it crashes is the sliding popups effect tries to unref -deleted windows that it hasn't referenced before (if there is an active -full screen effect, then popups won't be slided out, which in its turn -means that we won't reference deleted windows). So, in the end, the -refcount of those windows can be -1. That triggers an assert statement -in the destructor of the Deleted class, which checks whether the -refcount is equal to 0. - -Popups are not slided while there is an active full screen effect because -we don't know what the full screen effect does. - -This patch adjusts the sliding popups effect so it stops all active -animations when user switches virtual desktops or when a full screen -effect kicks in. We need to do that so the effect won't try to -unreference windows in postPaintWindow. - -Visually, it doesn't look quite nice, but for now that's good enough. -A proper fix would be more complex: we would need to make sure that -full screen effects ignore sliding popups (and also maybe docks) and -perform some input redirection. - -BUG: 400170 -FIXED-IN: 5.14.4 - -Test Plan: I'm not able anymore to reproduce bug 400170. - -Reviewers: #kwin, graesslin - -Reviewed By: #kwin, graesslin - -Subscribers: davidedmundson, graesslin, kwin - -Tags: #kwin - -Differential Revision: https://phabricator.kde.org/D16731 ---- - effects/slidingpopups/slidingpopups.cpp | 22 ++++++++++++++++++++++ - effects/slidingpopups/slidingpopups.h | 6 +++--- - 2 files changed, 25 insertions(+), 3 deletions(-) - -diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp -index a104a5c..066b2a3 100644 ---- a/effects/slidingpopups/slidingpopups.cpp -+++ b/effects/slidingpopups/slidingpopups.cpp -@@ -3,6 +3,7 @@ - This file is part of the KDE project. - - Copyright (C) 2009 Marco Martin notmart@gmail.com -+Copyright (C) 2018 Vlad Zagorodniy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -53,6 +54,11 @@ SlidingPopupsEffect::SlidingPopupsEffect() - m_atom = effects->announceSupportProperty(QByteArrayLiteral("_KDE_SLIDE"), this); - } - ); -+ connect(effects, qOverload(&EffectsHandler::desktopChanged), -+ this, &SlidingPopupsEffect::stopAnimations); -+ connect(effects, &EffectsHandler::activeFullScreenEffectChanged, -+ this, &SlidingPopupsEffect::stopAnimations); -+ - reconfigure(ReconfigureAll); - } - -@@ -434,6 +440,22 @@ void SlidingPopupsEffect::slideOut(EffectWindow *w) - w->addRepaintFull(); - } - -+void SlidingPopupsEffect::stopAnimations() -+{ -+ for (auto it = m_animations.constBegin(); it != m_animations.constEnd(); ++it) { -+ EffectWindow *w = it.key(); -+ -+ if (w->isDeleted()) { -+ w->unrefWindow(); -+ } else { -+ w->setData(WindowForceBackgroundContrastRole, QVariant()); -+ w->setData(WindowForceBlurRole, QVariant()); -+ } -+ } -+ -+ m_animations.clear(); -+} -+ - bool SlidingPopupsEffect::isActive() const - { - return !m_animations.isEmpty(); -diff --git a/effects/slidingpopups/slidingpopups.h b/effects/slidingpopups/slidingpopups.h -index 821640a..32e8fb5 100644 ---- a/effects/slidingpopups/slidingpopups.h -+++ b/effects/slidingpopups/slidingpopups.h -@@ -3,6 +3,7 @@ - This file is part of the KDE project. - - Copyright (C) 2009 Marco Martin notmart@gmail.com -+Copyright (C) 2018 Vlad Zagorodniy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -49,8 +50,6 @@ public: - - static bool supported(); - -- // TODO react also on virtual desktop changes -- - int slideInDuration() const; - int slideOutDuration() const; - -@@ -62,6 +61,7 @@ private Q_SLOTS: - - void slideIn(EffectWindow *w); - void slideOut(EffectWindow *w); -+ void stopAnimations(); - - private: - void setupAnimData(EffectWindow *w); -@@ -81,7 +81,7 @@ private: - AnimationKind kind; - TimeLine timeLine; - }; -- QHash m_animations; -+ QHash m_animations; - - enum class Location { - Left, --- -cgit v0.11.2 -- cgit v1.2.3