On Wed, May 15, 2013 at 12:12:43PM -0500, Jason Ekstrand wrote: > On Wed, May 15, 2013 at 9:39 AM, Mikko Levonmaa <mikko.levon...@gmail.com> > wrote: > > This allows the shell to inform the surface that it has changed > state, current supported states are default, minimized, maximized > and fullscreen. The shell implementation is free to interpret the > meaning for the state, i.e. the minimized might not always mean > that the surface is fully hidden for example. > > > We cannot simply have the shell telling clients it changed their state. The > clients need to be in control of the state of each surface. This is because > minimizing a client (for example) might not be as simple as hiding a specific > window. Only the client can actually know how to minimize/maximize it.
Hmm... not sure I fully understand nor agree (perhaps lack of understanding;). So to me it seems that the compositor should be the driver, not the passenger, i.e. it know how to animate the surface when it gets minimized and when maximied. How would the client know this? Also wouldn't this imply more knowledge on the toolkits side as well? > Please read earlier min/max discussions or yesterday's IRC logs for more > details. Neato, seems to be a hot topic, good to see someone else looking into this as well. I read through the email and pq's commmets about avoiding flicker make sense, so having the compositor and the client be in sync about whats going on is needed. Also naturally the client can be the originator, so clearly a request is needed. However in some cases the request might not be honored by the compositor, especially in an embedded environment. And actually also the compositor might only show window only in certain state, i.e. fullscreen so having the client full to decline a request might not be good either. > > > Signed-off-by: Mikko Levonmaa <mikko.levon...@lge.com> > --- > protocol/wayland.xml | 15 +++++++++++++++ > 1 files changed, 15 insertions(+), 0 deletions(-) > > diff --git a/protocol/wayland.xml b/protocol/wayland.xml > index 3bce022..ee7d32d 100644 > --- a/protocol/wayland.xml > +++ b/protocol/wayland.xml > @@ -874,6 +874,21 @@ > to the client owning the popup surface. > </description> > </event> > + > + <enum name="state"> > + <entry name="default" value="0"/> > + <entry name="minimized" value="1"/> > + <entry name="maximized" value="2"/> > + <entry name="fullscreen" value="4"/> > + </enum> > + > + <event name="state_changed"> > + <description summary="The surface state was changed"> > + The compositor or the user has taken action that has resulted in > + this surface to change state. > + </description> > + <arg name="state" type="uint"/> > + </event> > </interface> > > <interface name="wl_surface" version="2"> > -- > 1.7.4.1 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel > > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel