summaryrefslogtreecommitdiff
path: root/kde-plasma/kwin/files/kwin-5.14.3-resizewindows-crash.patch
diff options
context:
space:
mode:
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.patch72
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