[PATCH 2/2] xdg-shell: clarify xdg_surface creation semantics regarding buffers

Jonas Ådahl jadahl at gmail.com
Wed Mar 9 07:53:06 UTC 2016


On Tue, Mar 08, 2016 at 11:34:14PM -0800, Bryce Harrington wrote:
> On Fri, Feb 19, 2016 at 07:21:51PM -0800, Bryce Harrington wrote:
> > On Wed, Dec 02, 2015 at 08:06:46PM -0500, Mike Blumenkrantz wrote:
> > > this change ensures that the client will set its initial state
> > > before performing any drawing, ensuring that there is no mismatch
> > > when creating a surface with a non-default state
> > > (eg. maximize, fullscreen, ...)
> > > 
> > > looking at the following event flows:
> > > 1) wl_surface.attach, wl_surface.commit, xdg_shell.get_xdg_surface
> > > 
> > > 2) wl_surface.attach, xdg_shell.get_xdg_surface, wl_surface.commit
> > > 
> > > 3) xdg_shell.get_xdg_surface, wl_surface.commit, xdg_surface.configure,
> > >    wl_surface.attach, wl_surface.commit
> > > 
> > > only 3) is now valid, while 1) and 2) will trigger errors as a result
> > > of handling buffers prior to creating the xdg surface
> > > 
> > > Reviewed-by: Jasper St. Pierre <jstpierre at mecheye.net>
> > > Signed-off-by: Mike Blumenkrantz <zmike at osg.samsung.com>
> > > Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
> > 
> > Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
> 
> Pushed:
> To ssh://git.freedesktop.org/git/wayland/wayland-protocols
>    22a9cd8..275fd34  master -> master
> 
> Although, the filename in git is -v5 not -v6.

Reverted, as it was intended for v6 of xdg_shell, not v5.


Jonas

> 
> Bryce
> 
> > > ---
> > >  unstable/xdg-shell/xdg-shell-unstable-v6.xml | 14 ++++++--------
> > >  1 file changed, 6 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > index 196c332..a03a615 100644
> > > --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
> > > @@ -147,14 +147,12 @@
> > >        them, and associate metadata like title and app id.
> > >  
> > >        The client must call wl_surface.commit on the corresponding wl_surface
> > > -      for the xdg_surface state to take effect. Prior to committing the new
> > > -      state, it can set up initial configuration, such as maximizing or setting
> > > -      a window geometry.
> > > -
> > > -      Even without attaching a buffer the compositor must respond to initial
> > > -      committed configuration, for instance sending a configure event with
> > > -      expected window geometry if the client maximized its surface during
> > > -      initialization.
> > > +      for the xdg_surface state to take effect.
> > > +
> > > +      Creating an xdg_surface from a wl_surface which has a buffer attached or
> > > +      committed is a client error, and any attempts by a client to attach or
> > > +      manipulate a buffer prior to the first xdg_surface.configure call must
> > > +      also be treated as errors.
> > >  
> > >        For a surface to be mapped by the compositor the client must have
> > >        committed both an xdg_surface state and a buffer.
> > > -- 
> > > 2.4.3
> > > 
> > > _______________________________________________
> > > wayland-devel mailing list
> > > wayland-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/wayland-devel
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list