<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 29, 2013 at 5:43 PM, Kristian Høgsberg <span dir="ltr"><<a href="mailto:hoegsberg@gmail.com" target="_blank">hoegsberg@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, Nov 27, 2013 at 03:50:17PM -0200, Rafael Antognolli wrote:<br>
> xdg_shell is a protocol aimed to substitute wl_shell in the long term,<br>
> but will not be part of the wayland core protocol. It starts as a<br>
> non-stable API, aimed to be used as a development place at first, and<br>
> once features are defined as required by several desktop shells, we can<br>
> finally make it stable.<br>
><br>
> It provides mainly two new interfaces: xdg_surface and xdg_popup.<br>
><br>
> The xdg_surface interface implements a desktop-style window, that can be<br>
> moved, resized, maximized, etc. It provides a request for creating<br>
> child/parent relationship, called xdg_surface.set_transient_for.<br>
><br>
> The xdg_popup interface implements a desktop-style popup/menu. A<br>
> xdg_popup is always transient for another surface, and also has implicit<br>
> grab.<br>
<br>
</div>I think we can land this as is, though there are changes that I'd like<br>
to see.  We'll get back to them after we land the series but what I'm<br>
thinking is:<br>
<br>
 - I don't like ping/pong on popup surfaces, and in fact, I think we<br>
   can move it to xdg_shell, since it's really a per-client thing, not<br>
   a per-surface thing.<br>
<br>
 - set_transient_for is not a great name.  I know it comes from ICCCM,<br>
   but I wonder if we can find a better name.  If it's just stacking,<br>
   then maybe just set_aboe?<br></blockquote><div><br></div><div>It specifies a parent-child relationship. In mutter, we'll use this to attach modal dialogs to their parent windows, for instance.<br></div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 - protocol for server-initiated move/resize (eg mod+drag or kb<br>
   resize?), probably similar to what we do for server side requestsed<br>
   maximize.<br></blockquote><div><br></div><div>What protocol is there here?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 - not sure configure needs the edges flag anymore, in the cases where<br>
   the server requests a change to the surface size, the server<br>
   typically also knows where the window should go.  I think the flag<br>
   dates back to before the configure callback and the shell didn't<br>
   have a way to intercept the attach.  We relied on the client<br>
   passing the right dx/dy, but now the shell gets the configure<br>
   callback and can keep the right and top edges in place in case<br>
   we're resizing from bottom+left.  This should also fix xwayland<br>
   resizing from top or left side.<br>
<br>
 - we now have set/unset/request_set/request_unset for fullscreen and<br>
   maximize, and we'll add minimized, probably tiled_left/right.  This<br>
   is going to explode into a large number of requests and events all<br>
   with the same structure and flow as the maximized flow we've<br>
   discussied this week.  We should consider a more generic approach:<br>
<br>
    - set(MAXIMIZED), unset(MAXIMIZED) requests, where maximized is an<br>
      enum, that is, we don't allow set(MAXIMIZED | FULLSCREEN), but<br>
      since it's all atomic under wl_surface.commit,<br>
      set(MAXIMIZED)+set(FULLSCREEN) will have the intended effect<br>
      (ignore that MAXIMIZED and FULLSCREEN doesn't make sense).<br>
<br>
    - requet_set(MAXIMIZED) and request_unset(MAXIMIZED) to let the<br>
      server intiate the transition.<span class="HOEnZb"></span><br></blockquote><div><br></div><div>My hesitation with the enum would be people adding their own extensions to the enum without standardizing anything...<br>
<br></div><div>... if that's something we want (for e.g. tiled-top, tiled-bottom), then we should look at maybe having strings as states?<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888">
Kristian<br>
</font></span></blockquote><div><br></div><div>... snip ...<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
> _______________________________________________<br>
> wayland-devel mailing list<br>
> <a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>  Jasper<br>
</div></div>