diff options
Diffstat (limited to 'kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch')
-rw-r--r-- | kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch | 72 |
1 files changed, 0 insertions, 72 deletions
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 <vladzzag@gmail.com> -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 |