<div dir="ltr">Then I'd like some stronger wording in this patch that dictates that unmapping and remapping a surface by either destroying the xdg_surface or attaching a NULL buffer should be indistinguishable. No "hidden state", either accessible or inaccessible to the app (such as stacking order, window position, or user-added hints or settings) should leak through an unmap/map cycle, if such wording hasn't been added already.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 16, 2017 at 11:32 PM, Jonas Ådahl <span dir="ltr"><<a href="mailto:jadahl@gmail.com" target="_blank">jadahl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sun, Jul 16, 2017 at 11:16:25PM -0700, Jasper St. Pierre wrote:<br>
> (Coming into this one late)<br>
><br>
> When I first wrote xdg-shell, I maintained that attaching a NULL buffer<br>
> should be illegal since it has no benefit compared to destroying the<br>
> surface, but compositors might not reset all data attached to the surface,<br>
> making a weird exception where clients depend on bugs where state isn't<br>
> always reset. And the "resetting of all data" might seem like strange<br>
> behavior to clients.<br>
><br>
> Has this rationale changed?<br>
<br>
</span>Pretty much. It was never specified anywhere so implementations<br>
differed (weston and mutter implemented it like that but not sure<br>
anyone else did), it contradicted some wording in wayland.xml and it was<br>
a behaviour disliked by some, thus a middle ground was reached that<br>
clearly defines it as no state should be kept. I intend to try to make<br>
sure at least libweston-desktop and mutter respects this fully.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Jonas<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> On Tue, Jul 11, 2017 at 8:11 PM, David Edmundson <<a href="mailto:davidedmundson@kde.org">davidedmundson@kde.org</a>><br>
> wrote:<br>
><br>
> ><br>
> ><br>
> >> The idea is that having unmapped by null-attach means the<br>
> >> xdg_surface/xdg_toplevel etc is reset to the exact same state that it<br>
> >> had when first created, thus to map again, one would do what one would<br>
> >> do the same as when mapping it for the first time: set up the state<br>
> >> (set_title, (set_maximized?), set_app_id), commit, wait for configure,<br>
> >> then attach a new buffer given the configure event data.<br>
> >><br>
> >><br>
> >> Thanks, I'd totally forgotten the commit as I was only looking in this<br>
> > interface.<br>
> > It's clear now.<br>
> ><br>
> > David<br>
> ><br>
> > ______________________________<wbr>_________________<br>
> > wayland-devel mailing list<br>
> > <a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.<wbr>freedesktop.org</a><br>
> > <a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/wayland-devel</a><br>
> ><br>
> ><br>
><br>
><br>
> --<br>
>   Jasper<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">  Jasper<br></div>
</div>