[wayland] Set better placement for XDG Toplevels

Summary:
XDG Popups will have a transient parent and positional information.
XDG Toplevels can have a transient parent without having positional
information.

Currently we set that we have a transient placement hint of 0,0 which
means the newly opened children go to the top left of the parent.

This new code paths treat child top levels as dialogs centering them to
the parent.

BUG: 393167

Test Plan:
Dolphin help->about
Appeared where it does on X

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16293
icc-effect-5.17.5
David Edmundson 2018-10-23 12:18:03 +01:00
parent 655d8af8be
commit bdf348c603
1 changed files with 2 additions and 0 deletions

View File

@ -74,6 +74,8 @@ void Placement::place(AbstractClient* c, QRect& area)
placeOnScreenDisplay(c, area);
else if (c->isTransient() && c->hasTransientPlacementHint())
placeTransient(c);
else if (c->isTransient() && c->surface())
placeDialog(c, area, options->placement());
else
place(c, area, options->placement());
}