diff --git a/wayland_server.cpp b/wayland_server.cpp index 05a470f5ae..9248805f5b 100644 --- a/wayland_server.cpp +++ b/wayland_server.cpp @@ -127,7 +127,7 @@ void WaylandServer::init(const QByteArray &socketName) connect(client, &ShellClient::windowShown, this, [this, client] { emit shellClientAdded(client); - } + }, Qt::QueuedConnection ); } } diff --git a/workspace.cpp b/workspace.cpp index a0b9da9013..2b1095d991 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -379,6 +379,8 @@ void Workspace::init() connect(w, &WaylandServer::shellClientAdded, this, [this] (ShellClient *c) { if (!c->isInternal()) { + QRect area = clientArea(PlacementArea, Screens::self()->current(), c->desktop()); + Placement::self()->place(c, area); if (!unconstrained_stacking_order.contains(c)) unconstrained_stacking_order.append(c); // Raise if it hasn't got any stacking position yet if (!stacking_order.contains(c)) // It'll be updated later, and updateToolWindows() requires