diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2015-03-18 17:08:23 +0800 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2015-05-05 14:17:25 +0800 |
commit | cd94a46b971ff06df8ce455f71d904be636dc6e2 (patch) | |
tree | 032241ba9db4621b019945d80f0dd09a6fcf0869 /protocol | |
parent | ee45a55deafb0ab261c950bdd54ad08c311e5931 (diff) |
xdg-shell: Require a buffer and a wl_surface.commit for mapping a window
Require the client to have attached (either previously committed, or
newly) a buffer to the corresponding wl_surface, and that the window
will not be potentially mapped until calling wl_surface.commit after
having created the window. This is required to make valid double
buffered xdg_surface state possible when creating a window.
Currently there is no double buffered state in xdg_popup, but it should
behave the same as xdg_surface, and for making it future proof in case
we want to add double buffered state to xdg_popup.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'protocol')
-rw-r--r-- | protocol/xdg-shell.xml | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml index df103c47..79e30a01 100644 --- a/protocol/xdg-shell.xml +++ b/protocol/xdg-shell.xml @@ -132,6 +132,19 @@ It provides requests to treat surfaces like windows, allowing to set properties like maximized, fullscreen, minimized, and to move and resize 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 a surface to be mapped by the compositor the client must have + committed both an xdg_surface state and a buffer. </description> <request name="destroy" type="destructor"> @@ -456,6 +469,12 @@ The x and y arguments specify where the top left of the popup should be placed, relative to the local surface coordinates of the parent surface. + + The client must call wl_surface.commit on the corresponding wl_surface + for the xdg_popup state to take effect. + + For a surface to be mapped by the compositor the client must have + committed both the xdg_popup state and a buffer. </description> <request name="destroy" type="destructor"> |