Commit 83ed2503 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii
Browse files

wayland: Block geometry updates while placing popups

Placement::placeTransient() checks the frame geometry right after
setting it. That is a problem because geometry updates for
XdgPopupClient are made in async fashion. We need to block geometry
updates in order to ensure that window placement code sees correct
geometry.


(cherry picked from commit f369a355)
parent e35a5a7e
...@@ -1979,8 +1979,10 @@ void XdgPopupClient::initialize() ...@@ -1979,8 +1979,10 @@ void XdgPopupClient::initialize()
parentClient->addTransient(this); parentClient->addTransient(this);
setTransientFor(parentClient); setTransientFor(parentClient);
blockGeometryUpdates(true);
const QRect area = workspace()->clientArea(PlacementArea, Screens::self()->current(), desktop()); const QRect area = workspace()->clientArea(PlacementArea, Screens::self()->current(), desktop());
placeIn(area); placeIn(area);
blockGeometryUpdates(false);
scheduleConfigure(); scheduleConfigure();
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment