D18583: [WIP] Init ShellClient only when commited to the buffer
David Edmundson <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
davidedmundson created this revision. davidedmundson added a reviewer: KWin. Herald added a project: KWin. Herald added a subscriber: kwin. davidedmundson requested review of this revision. REVISION 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 delaying init we will have the intial state correct to apply rules and more correct geometry and everything is more atomic. It's WIP because it breaks a lot of (arguably incorrect) unit tests - and because I need to go through init() and make sure we load the initial state of everything as well as connecting the signals. Uploading now because zzag has a patch pending for applying rules which relies on correct initial state. 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 WIP REPOSITORY R108 KWin BRANCH origin-master (branched from master) REVISION DETAIL https://phabricator.kde.org/D18583 AFFECTED FILES shell_client.cpp To: davidedmundson, #kwin Cc: kwin, jraleigh, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart