<div dir="ltr">On Thu, Aug 21, 2014 at 7:18 PM, Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com" target="_blank">spitzak@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
<br>
On 08/21/2014 02:52 AM, Pekka Paalanen wrote:<br>
<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
+      Destroying the role object does not remove the role from the<br>
+      wl_surface, but it may stop the wl_surface from "playing the role".<br>
+      For instance, if a wl_subsurface object is destroyed, the wl_surface<br>
+      it was created for will be unmapped and forget its position and<br>
+      z-order. It is allowed to create a wl_subsurface for the same<br></div>
+      wl_surface again...<br>
</blockquote>
<br>
I really think destroying the role object should have no visible effect.<br>
<br>
This is inconsistent with roles that don't create a role object. They have zero role objects too, but somehow the role keeps working.<br>
<br>
It is also inconsistent with the ability to create more than one copy of the role object. For some reason destruction of the last one is different than destruction of all the others...<br></blockquote><div><br></div><div>
How do you create more than one copy of the role object in the first place?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
May also be really nasty if a former object-less role is updated with a new api that returns a role object. Now all users of that role have to be updated to store this object they didn't use to need so it won't get deleted...<br>
</blockquote><div><br></div><div>Methods don't return parameters. Clients allocate new object IDs and then pass those to the server. You cannot add new API that returns a role object without breaking API in the first place, since it's modifying the number of parameters of the method.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A client subroutine that uses a role the caller does not know about will have to use a static map to look up cached role objects by wl_surface id. And some scheme has to be figured out to delete them when the wl_surface is deleted.<br>
</blockquote><div><br></div><div>That doesn't make any sense. What kind of client subroutine are you talking about?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

It also just seems like it would be easier to implement the compositor this way, too.<div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>  Jasper<br>
</div></div>