From bba18a1ba812f3a147173edc19516f0e00e7c855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Mon, 26 Dec 2016 11:04:14 +0100 Subject: [PATCH] Fix the osd re-placement on X11 Summary: 6383f8304711719fe22371474138efc144adc750 introduced a regression hitting an assert on X11 when an osd window is added. This change tries to address this by adding a GeometryUpdateBlocker around the change. The hit assertion is: pendingGeometryUpdate() == PendingGeometryNone || areGeometryUpdatesBlocked() By using a GeometryUpdateBlocker the second condition becomes true and we no longer hit the condition. BUG: 374038 Test Plan: Manual tested both on X11 and Wayland, Wayland autotest still passes Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D3808 --- abstract_client.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/abstract_client.cpp b/abstract_client.cpp index cfa7f93f31..a33821a91c 100644 --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -75,6 +75,7 @@ AbstractClient::AbstractClient() [this] (Toplevel *c, const QRect &old) { Q_UNUSED(c) if (isOnScreenDisplay() && !geometry().isEmpty() && old.size() != geometry().size()) { + GeometryUpdatesBlocker blocker(this); QRect area = workspace()->clientArea(PlacementArea, Screens::self()->current(), desktop()); Placement::self()->place(this, area); setGeometryRestore(geometry());