Commit f369a355 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii

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.
parent 1e01b133
......@@ -1979,8 +1979,10 @@ void XdgPopupClient::initialize()
parentClient->addTransient(this);
setTransientFor(parentClient);
blockGeometryUpdates(true);
const QRect area = workspace()->clientArea(PlacementArea, Screens::self()->current(), desktop());
placeIn(area);
blockGeometryUpdates(false);
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