Diffusion KWin 2bad2b48fefd

[wayland] Finish initialising ShellClient only when commited to the surface

Authored by davidedmundson on Feb 26 2019, 1:41 PM.

Description

[wayland] Finish initialising ShellClient only when commited to the surface

Summary:
Everything on the wl_surface is double buffered.

When we create an XdgShell toplevel or popup we shouldn't treat it as
attached until it's committed to the surface.

A client should commit the surface after it's sent it's initial state of
the Xdg topLevel; minimumSize, title, app_id, etc.

By blocking sending configure events we will have flushed the correct
initial state before sending a single atomic correct event to the
client. It also adds a hook to re-evaluate rules now that all properties
are set.

Arguably this applies to WlShellSurface too, but I've left it unchanged
as it's deprecated and hard to verify real client behaviour.

Test Plan: Ran all unit tests

Reviewers: KWin, zzag

Reviewed By: KWin, zzag

Subscribers: zzag, kwin

Tags: KWin

Differential Revision: https://phabricator.kde.org/D18583

Details

Committed
davidedmundsonFeb 26 2019, 1:51 PM
Reviewer
KWin
Differential Revision
D18583: Init ShellClient only when commited to the buffer
Parents
R108:dc7ea09e8d85: [autotests] Check the configure request sent to popups
Branches
Unknown
Tags
Unknown