From ac96367d757241c480efffc430b66236a852fe5c Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 12 Nov 2018 07:57:18 +0100 Subject: [PATCH 1/2] SVN_SILENT made messages (.desktop file) - always resolve ours In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop" --- effects/zoom/zoom_config.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/effects/zoom/zoom_config.desktop b/effects/zoom/zoom_config.desktop index 87f5fc42d5..03d37b113c 100644 --- a/effects/zoom/zoom_config.desktop +++ b/effects/zoom/zoom_config.desktop @@ -40,7 +40,7 @@ Name[hne]=जूम Name[hr]=Povećanje Name[hu]=Kinagyítás Name[ia]=Zoom -Name[id]=Zoom +Name[id]=Zum Name[is]=Aðdráttur Name[it]=Ingrandimento Name[ja]=ズーム From 406b70b04e093c13faf763e2d885797ae037d806 Mon Sep 17 00:00:00 2001 From: Vlad Zagorodniy Date: Mon, 12 Nov 2018 17:45:14 +0200 Subject: [PATCH 2/2] [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 b4628f28df..ed72b9c934 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: