-
a956c73e
by Jonas Ådahl
at 2016-02-16T17:00:15+08:00
Introduce wp_relative_pointer interface
The wp_relative_pointer interface is an extension to the wl_pointer
interface created from wl_seat. It has the same focus, but adds the
functionality of sending relative pointer motions unhindered by
constraints such as monitor edges or other barriers. It also contains
unaccelerated pointer motion information.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Reviewed-by: Daniel Stone <daniels@collabora.com>
-
162619d6
by Jonas Ådahl
at 2016-02-16T17:17:49+08:00
Introduce pointer locking and confinement protocol
This patch introduces a new protocol for locking and confining a
pointer. It consists of a new global object with two requests; one for
locking the surface to a position, one for confining the pointer to a
given region.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Reviewed-by: Daniel Stone <daniels@collabora.com>
-
596dfda8
by Jonas Ådahl
at 2016-02-16T17:17:49+08:00
configure.ac: Bump version to 1.1
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
2deda62a
by Carlos Olmedo Escobar
at 2016-02-29T15:26:53-08:00
Remove 'is'.
Signed-off-by: Carlos Olmedo Escobar <carlos.olmedo.e@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
95e7f445
by Pekka Paalanen
at 2016-03-01T11:18:35+02:00
stable: add presentation-time draft
This XML file has been copied verbatim from Weston 1.10.0 release,
protocol/presentation_timing.xml. The last behavioral change to that
file was in December 2014, so the behaviour is considered stable.
Interfaces still need to be renamed according wayland-protocols policy.
That will be done in a follow-up patch to clearly show the changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
10ae82c4
by Pekka Paalanen
at 2016-03-01T11:19:10+02:00
presentation-time: finish stabilization
Rename interfaces and the protocol to follow the policy.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
f4e9da83
by Pekka Paalanen
at 2016-03-01T11:19:16+02:00
Makefile: add presentation-time to stable protocols
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
62468ffc
by Pekka Paalanen
at 2016-03-01T11:19:24+02:00
Makefile: install and dist stable protocols
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
22a9cd8a
by Jonas Ådahl
at 2016-03-07T17:09:30+08:00
configure.ac: Bump version to 1.2
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
275fd340
by Mike Blumenkrantz
at 2016-03-08T23:32:51-08:00
xdg-shell: clarify xdg_surface creation semantics regarding buffers
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@mecheye.net>
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
ca86a592
by Peter Hutterer
at 2016-03-08T23:40:43-08:00
Add the tablet protocol
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
418915ee
by Jonas Ådahl
at 2016-03-09T15:49:51+08:00
Revert "xdg-shell: clarify xdg_surface creation semantics regarding buffers"
This patch was intended to be part of the coming v6 version of the
xdg_shell protocol. It is an semantically backward incompatible change,
so it cannot be implemented in xdg_shell v5 without breaking
compatibility with available clients.
This reverts commit 275fd34023fabdcb487f2adf2fe80bda1e4bf0dc.
-
82bb922f
by Jonas Ådahl
at 2016-03-10T15:02:29+08:00
configure.ac: Bump version to 1.3
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
a5066855
by Yong Bakos
at 2016-04-13T12:35:00-07:00
readme: Correct spelling and grammar
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
8dab46ab
by Yong Bakos
at 2016-04-13T12:35:02-07:00
presentation-time: Correct minor grammar errors
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
7d21c638
by Yong Bakos
at 2016-04-13T12:35:02-07:00
tablet: Adjust vertical whitespace for consistency
Add/remove vertial whitespace between xml elements
according to conventions elsewhere within this, and other,
protocol xml docs.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
4e7b2fb4
by Yong Bakos
at 2016-04-13T12:35:04-07:00
tablet: Correct grammar and punctuation
Correcting minor grammar and punctuation affords clarity.
Standardize the use of 'surface local coordinates' in lieu of 'surface relative'.
Capitalize Wayland where appropriate, similar to other occurences.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
fc2889ba
by Yong Bakos
at 2016-04-13T12:35:08-07:00
relative-pointer: Correct spelling error, one capitalization, and minor space
Downcase the protocol description summary.
Adjust two double-spaces to one, like the rest of the content.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
09a654e9
by Yong Bakos
at 2016-04-13T12:35:09-07:00
pointer-gestures: Correct pluralization, one space, minor vertical whitespace
Adjust double-space after period to be consistent with all content.
Adjust vertical whitespace surrounding first and last protocol tag to
match conventions in this, and other, protocol xml docs.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
0197adb3
by Yong Bakos
at 2016-04-13T12:35:10-07:00
pointer-constraints: Correct spelling, grammar and consistency
Downcase the protocol summary description to match other protocols.
Replace 'surface-relative' with 'surface local' for consistency and clarity.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
c9a8cec8
by Yong Bakos
at 2016-04-13T12:35:13-07:00
linux-dmabuf: Add missing articles and punctuation, adjust minor whitespace
Remove line breaks preceding closing interface tags, to match conventions
in this, and other, protocol xml docs.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
ae55234c
by Yong Bakos
at 2016-04-13T12:35:14-07:00
input-method: Correct grammar, add missing line break
Adds one line between two sequential request elements, to match conventions
within this, and other, protocol xml docs.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
6c6e646a
by Yong Bakos
at 2016-04-13T12:35:15-07:00
fullscreen-shell: Correct grammar, punctuation, minor naming and space
Add missing periods that terminate sentences.
Correct ARBITRARY_MODE to match the actual enum value name.
Adjust one post-period space to match the rest of the content.
Downcase summary description to match the rest of the document.
Add line breaks between sequential enum elements to match conventions
in this, and other, protocol xml docs.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
1dd63b1d
by Yong Bakos
at 2016-04-13T12:35:19-07:00
pointer-gestures: Add missing xml declaration
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
cec64ada
by Yong Bakos
at 2016-04-13T12:35:22-07:00
fullscreen-shell: Add missing xml declaration
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
4f87fcf3
by Pekka Paalanen
at 2016-04-14T11:30:16+03:00
stable/presentation-time: swap two paragraphs in 'presented'
Associates better with the surrounding paragraphs by not jumping topics
back and forth.
Suggested-by: Bill Spitzak <spitzak@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
8e685a89
by Pekka Paalanen
at 2016-04-14T11:32:04+03:00
stable/presentation-time: grammatical improvements by Bryce
Suggested-by: Bryce Harrington <bryce@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
79a41729
by Pekka Paalanen
at 2016-04-14T11:32:04+03:00
stable/presentation-time: reorganize clock_id documentation
Move compositor implementors' guidelines to the end. Recombine the
affected paragraphs.
No changes to the wording are made.
Suggested-by: Bryce Harrington <bryce@osg.samsung.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
a8d7dce4
by Pekka Paalanen
at 2016-04-14T11:32:04+03:00
stable/presentation-time: rephrase request intro
Attempting to clarify the paragraph. The key points are that feedback is
double-buffered, part of a commit as all double-buffered state is, and
it defines the term "content update" used later.
The new phrasing defines not only a content update, but also content
submission which is used further on in the spec. It implies the
double-buffered state semantics without actually using the term (it's
not really state to be applied), and makes a link with the very next
paragraph describing the prensentation time.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
5eb2a8d4
by Yong Bakos
at 2016-04-21T14:35:13-07:00
fullscreen-shell: Correct spelling of parameter name
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
44d5da75
by Yong Bakos
at 2016-04-29T16:35:18-07:00
pointer-constraints: Use 'surface-local' in simplified parameter summary
See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
-
aaafffe0
by Yong Bakos
at 2016-04-29T16:35:24-07:00
tablet: Hyphenate compound adjective surface-local
In addition, simplify relevant x/y coordinate parameter summaries.
See https://lists.freedesktop.org/archives/wayland-devel/2016-April/028249.html.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
-
cc276dfa
by Jussi Kukkonen
at 2016-05-03T16:04:53+03:00
configure.ac: Don't use AC_CANONICAL_* macro calls
Check autoconfs $cross_compiling instead as AC_CANONICAL_HOST call
will fail if the host cpu is not recognised (which can happen when
e.g. Yocto builds for "allarch").
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
5c88eef8
by Pekka Paalanen
at 2016-05-06T15:00:59+03:00
stable: add viewporter draft
This XML file has been copied verbatim from Weston 1.10.0 release,
protocol/scaler.xml.
The interfaces still need renaming according to wayland-protocols
policy. Also a redundant request needs to be removed. These will be done
in a follow-up patch to clearly show the changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
368cbf39
by Pekka Paalanen
at 2016-05-06T15:00:59+03:00
stable/viewporter: remove wp_viewport.set request
Remove the old, redundant request. The new way is to call both
wp_viewport.set_source and wp_viewport.set_destination when you want to
set everything.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
af6402c4
by Pekka Paalanen
at 2016-05-06T15:00:59+03:00
stable/viewporter: rename and build
Rename interfaces and the protocol to follow the policy.
Reset interface versions.
Replace "surface coordinates" with "surface local coordinates".
Hook up to build and install.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
39bc7207
by Pekka Paalanen
at 2016-05-06T15:00:59+03:00
stable/viewporter: rephrase a wp_viewport paragraph
Cc: Yong Bakos <ybakos@humanoriented.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
[Pekka: s/culled/ignored/]
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
83bdaa5c
by Pekka Paalanen
at 2016-05-06T15:00:59+03:00
stable/viewporter: add more error cases
Rather than silenty doing things, make them explicit and error if
anything is not quite right. Suggested by Daniel Stone.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
[Pekka: updated copyright years]
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
65d09ef4
by Jonas Ådahl
at 2016-05-23T11:33:48+08:00
configure.ac: Bump version to 1.4
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
2009a70f
by Bryce Harrington
at 2016-07-08T11:05:20-07:00
Fix grammar for 'an X*'
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
-
fa1da433
by Peter Hutterer
at 2016-07-20T15:20:04+08:00
tablet: add v2 of the tablet protocol
This is a straightforward copy/paste with a _v1 -> _v2 rename. No functional
changes otherwise.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
bbd5c7f9
by Peter Hutterer
at 2016-07-20T15:20:04+08:00
tablet: change all degree values from int to wl_fixed
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
8123c92b
by Peter Hutterer
at 2016-07-20T15:20:04+08:00
tablet: restrict the cursor surface to one per tool
The initial approach was to allow one surface to be re-used between tools,
seats and even used together as wl_pointer cursor surface. This has a few
drawbacks, most of which are related to managing the surface correctly in the
compositor. For example, the same cursor surface could have two different
hotspots. Animated cursors should animate independently rather than update at
the same time.
Furthermore: a client cannot know when a surface will cease being used as a
cursor surface. The basic assumption of "after focus out" is an implementation
detail in the compositor and unless the client unsets the cursor it is not
guaranteed that the surface is released. This again makes sharing a surface
less obvious - you cannot know if the wl_pointer surface is still in use when
you set it for a new wp_tablet_tool.
Avoid these headaches (and push some of them to the client) by simply
restricting a wl_surface to be assigned to a single tool. For the 99% use case
where we have one tablet with two tools (pen + eraser) this means we merely
get two extra surfaces, and the two don't usually share the same cursor shape
anyway. If sharing is absolutely necessary, a client may still opt to share
the underlying wl_buffer.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
24eb6700
by Carlos Garnacho
at 2016-07-20T15:22:04+08:00
tablet: Add pad support to the tablet protocol
The pad's interface is similar to the tool interface, a client is notified of
the pad after the tablet_added event.
The pad has three functionalities: buttons, rings and strips.
Buttons are fairly straightforward, rings and strips are separate interfaces
with pointer-axis-like source/value/frame events.
The two interfaces are effectively identical but for the actual value they
send (degrees vs normalized position).
Buttons are sequentially indexed starting with zero, unlike other protocols
where a linux/input.h-style semantic event code is used. Since we expect all
buttons to have client-specific functionality, an additional event tells the
client when a given button index is not available, usually because the
compositor assignes some function to it (e.g. mode switching, see below).
Specific to the pad device is the set_feedback request which enables a client
to set a user-defined string to display for an OSD on the current mappings.
This request is available for buttons, rings and strips.
Finally, the pad supports groups, effectively sets of button/ring/strip
configurations. Those groups may have multiple modes each, so that
users/clients may map several actions to a single element.
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
f93680e4
by Jonas Ådahl
at 2016-07-22T11:43:54+08:00
configure.ac: Bump version to 1.5
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
cf82828d
by Jonas Ådahl
at 2016-08-12T10:50:42+08:00
Introduce xdg-foreign protocol
xdg-foreign is a protocol meant to enable setting up inter surface
relationships across clients. Potential use cases are out-of-process
dialogs, such as file dialogs, meant to be used by sandboxed processes
that may not have the access it needs to implement such dialogs.
It works by enabling a client to export a surface, creating a handle
for the exported surface. The handle, in form of a unique string, may
be shared in some way with other clients (for example the provider of
the file dialog) which can then import the exported surface.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-
a7f9e039
by Bryce Harrington
at 2016-08-12T11:21:36+08:00
Add screensaver idle inhibitor protocol
This interface allows disabling of screensaver/screenblanking on a
per-surface basis. As long as the surface remains visible and
non-occluded it blocks the screensaver, etc. from activating on the
output(s) that the surface is visible on.
To uninhibit, simply destroy the inhibitor object.
Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
49272ee0
by Jonas Ådahl
at 2016-08-12T11:22:11+08:00
configure.ac: Bump version to 1.6
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
89cadb43
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Bump unstable version to 6
This copies the version 5 of the XML to a new version 6 version, while
at the same time the interface names are changed to use the unstable
naming convention.
A whitespace cleanup was done as no git-blame:ability would be lost
anyway.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
57592798
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Remove the old unstable version enum and request
As of version 6, the new unstable protocol discovery semantics are
used, so lets remove the enum and request that made up the old one.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
3acad73c
by Mike Blumenkrantz
at 2016-08-15T10:25:31+08:00
xdg-shell: clarify xdg_surface creation semantics regarding buffers
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
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
46f5d238
by Olivier Fourdan
at 2016-08-15T10:25:31+08:00
xdg-shell: Add min/max size requests
Some application may wish to restrict their window in size, but
xdg-shell has no mechanism for the client to specify a maximum or
minimum size.
As a result, the compositor may try to maximize or fullscreen a window
while the client would not allow for the requested size.
Add new requests "set_max_size" and "set_min_size" to xdg-shell so that
the client can tell the compositor what would be its smallest/largest
acceptable size, and that the compositor can decide if maximize or
fullscreen is achievable, draw an accurate animation, etc.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=764413
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
8315aaf1
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Turn xdg_surface into a generic base interface
Split out toplevel window like requests and events into a new interface
called xdg_toplevel, and turn xdg_surface into a generic base interface
which others extends.
xdg_popup is changed to extend the xdg_surface.
The configure event in xdg_surface was split up making
xdg_surface.configure an event only carrying the serial number, while a
new xdg_toplevel.configure event carries the other data previously sent
via xdg_surface.configure. xdg_toplevel.configure is made to extend,
via the latch-state mechanism, xdg_surface.configure and depends on
that event to synchronize state.
Other future xdg_surface based extensions are meant to also extend
xdg_surface.configure for relevant window type dependend state
synchronization.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Mike Blumenkrantz <zmike@samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
5f694ca7
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Put xdg_shell events after requests
It makes the structure consistent with most other protocols and
provides a clear separation between what is done by the server and what
is done by the client.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
2258fa64
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Add error codes for invalid surface state
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
4c6cdfa2
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Improve error enum formatting some
The long lines stood out, break them by putting the summary on its own
line.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
88390edd
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Make get_popup take a xdg_surface instead of wl_surface
The reason for using wl_surface before was that xdg_popup and
xdg_surface (now xdg_toplevel) had no common interface other than
wl_surface, but since xdg_surface is now the base interface, lets use
that.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Benoit Gschwind <gschwind@gnu-log.net>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
eef4b95f
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Make xdg_popup non-grabbing by default
Turn xdg_popup into plain temporary child surfaces without any grabbing
or mapping order requirements by default.
In order to create grabbing popup chains, a new request 'grab' is
introduced which enables more or less the same semantics and
requirements as xdg_popup previously had related to grabbing, stacking
and mapping order.
This enables using xdg_popup for creating tooltips and other user
interface elements that does not want to take an explicit grab.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Mike Blumenkrantz <zmike@samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
dee23fd0
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Introduce xdg_positioner
xdg_positioner is a method for declarative positioning of child surfaces
(currently only xdg_popup surfaces). A client creates a description of a
positioning logic using the xdg_positioner interface. The xdg_positioner
object is then used when creating a xdg_popup for describing how the
child surface should be positioned in relation to the parent surface.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Mike Blumenkrantz <zmike@samsung.com>
Acked-by: Yong Bakos <ybakos@humanoriented.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-
3dab2f13
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Clarify focus semantics for popup grabs
Make it clearer what the focus semantics are during a popup grab. In
short, when a grabbing popup is mapped, the top most popup will always
have keyboard focus, while pointer and touch focus works just as normal
except that only surfaces from the grabbing client will receive pointer
and touch focus.
This patch doesn't really change any semantics but rather clarifies
what was ambiguous before.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
-
7ba6a6ab
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Drop desktop environment specific state allocations
Instead of allocating state ranges that desktop environments can use as
they want, let them introduce their own protocol and their own enums.
If such desktop environment protocols need the configure/ack_configure
semantics, they can design their protocols to extend xdg_surface, and
make their private configure events a latched state tied to
xdg_surface.configure.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Acked-by: Bryce Harrington <bryce@osg.samsung.com>
-
c09e8992
by Jonas Ådahl
at 2016-08-15T10:25:31+08:00
xdg-shell: Add resize_x/y constraint adjustment to positioner
In order to get feedback of available space where a client can create
its popup, let it create requset that its popup rectangle being resized
would it not fit the within the work area. This adds two new constraint
adjustment values to the adjustment enum, and dimension parameters to
the xdg_popup.configure event.
The existing constraint adjustment actions take precedence, and resizing
will only be triggered if all other adjustments requested didn't manage
to make the popup rectangle fully visible.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Quentin Glidic <sardemff7+git@sardemff7.net>
-
2e541a36
by Jonas Ådahl
at 2016-08-15T10:33:32+08:00
configure.ac: Bump version to 1.7
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
4253ad0b
by Reynaldo H. Verdejo Pinochet
at 2016-08-30T17:13:08+08:00
buildsystem: add -uninstalled.pc pkg-config file
For building against an uninstalled wayland-protocols tree
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
c5802797
by Yong Bakos
at 2016-08-30T17:13:08+08:00
text-input: Fix indentation and paragraph whitespace
Replace the tab indentation of the MIT license with appropriate spaces.
Add one missing line break between two description paragraphs.
Adjust two line breaks to keep descriptions under 80 chars / line.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
594bb8e0
by Yong Bakos
at 2016-08-30T17:13:08+08:00
text-input: Rename text-input to text_input
Interface names are lower_snake_case, and corresponding descriptions
should match, for accuracy and clarity. This renaming only affects
description text, to follow the convention that exists elswhere in
this protocol document and in other protocol docs, when referring to
interface names.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
d2ba6ad4
by Yong Bakos
at 2016-08-30T17:13:08+08:00
text-input: Correct grammar
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
1392110d
by Yong Bakos
at 2016-08-30T17:13:08+08:00
xdg-shell: Correct grammar
Adjust minor grammar issues, for clarity.
This patch cherry-picks some relevant changes from an earlier series,
patches 3 to 5. See:
https://lists.freedesktop.org/archives/wayland-devel/2016-April/028078.html
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
427d52e8
by Bryce Harrington
at 2016-09-14T14:48:42-07:00
input-method: Correct grammar
These should all be pretty straightforward; there are no behavioral
changes.
Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
-
a1d574fa
by Bryce Harrington
at 2016-09-16T09:17:30-07:00
input-method: Lead with a verb in request descriptions
Make all the descriptions consistent by starting the description with a
simple verb (set instead of sets, etc.) Add or rework a few of the
existing descriptions to fit this form.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
-
f7349c3f
by Bryce Harrington
at 2016-11-21T11:14:17+00:00
idle-inhibit: Lead with a verb in request description
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
59b6e208
by Yong Bakos
at 2016-11-21T11:20:27+00:00
(multiple): Remove inconsistent line breaks
Enum entries and message arguments are sometimes preceded by a blank line, but
often aren't.
Standardize the format of the protocol specification by removing blank lines
preceding a list of message arguments and enum entries.
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
642dd7af
by Varad Gautam
at 2016-11-21T11:24:24+00:00
linux-dmabuf: clarify format event description
clearly state the request name in format event to avoid abmiguous
interpretation between 'zwp_linux_buffer_params_v1::create' and
'zwp_linux_dmabuf_v1::create_params' requests.
v2: grammar fixup (Yong Bakos)
Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
Suggested-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
375385e3
by Mike Blumenkrantz
at 2017-01-17T21:29:13+08:00
xdg-shell: require popups to intersect with or be adjacent to parent surfaces
some restrictions must be placed on this or else it becomes legal for
the compositor to place popups in unexpected locations
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
ab228a67
by Yong Bakos
at 2017-01-27T11:58:50+00:00
linux-dmabuf-unstable: Use standard copyright notice
Signed-off-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
a840b363
by Varad Gautam
at 2017-05-19T10:53:22+01:00
linux-dmabuf: add immediate dmabuf import path
provide a mechanism that allows clients to import the added dmabufs
and immediately use the newly created wl_buffers without waiting on
an event. this is useful to clients that are sure of their import
request succeeding, and wish to avoid the wl_buffer communication
roundtrip.
bump zwp_linux_dmabuf_v1, zwp_linux_buffer_params_v1 interface
versions.
v2: specify using incorrectly imported dmabufs as undefined behavior
instead of sending success/failure events. (pq, daniels)
v3: preserve the optional protocol error added in v2 and explicitly
state the outcome of import success or failure (pq)
v4: clarify create_immed failure cases and error codes (pq)
Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
4ecdb097
by Varad Gautam
at 2017-05-19T10:53:30+01:00
linux-dmabuf: advertise format modifiers with modifier event
advertise the supported fourcc format modifiers along with supported
formats to the client. the 'modifier' event introduced here is
intended to replace the 'format' event from zwp_linux_dmabuf_v1
version 1.
bump zwp_linux_dmabuf_v1, zwp_linux_buffer_params_v1 interface
versions to 3.
v2: specify request name in event description for clarity (Yong Bakos)
v3: grammar fixup (Yong Bakos)
v4: add deprecation warning against 'format' event usage (pq)
Signed-off-by: Varad Gautam <varad.gautam@collabora.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
c438cbe7
by Daniel Stone
at 2017-05-20T16:12:23+01:00
linux-dmabuf: Bump main protocol version
Unfortunately this hunk fell out during a rebase. Sorry!
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
26c99346
by Daniel Stone
at 2017-06-12T10:27:44+01:00
Bump version to 1.8
Signed-off-by: Daniel Stone <daniels@collabora.com>
-
0a61d351
by Olivier Fourdan
at 2017-07-11T14:18:39+08:00
Introduce keyboard grabbing protocol for Xwayland
This patch introduces a new protocol for grabbing the keyboard from
Xwayland.
This is needed for X11 applications that map an override redirect window
(thus not focused by the window manager) and issue an active grab on the
keyboard to capture all keyboard events.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
e16986b3
by Olivier Fourdan
at 2017-07-11T14:18:39+08:00
Add keyboard shortcuts inhibitor
This adds a new protocol to let Wayland clients specify that they want
all keyboard events to be sent to the client, regardless of the
compositor own shortcuts.
This protocol can be used for virtual machine and remote connection
viewers which require to pass all keyboard shortcuts to the hosted or
remote system instead of being caught up by the compositor locally.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
7af21d83
by Jonas Ådahl
at 2017-07-11T14:41:21+08:00
configure.ac: Bump version to 1.9
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
794a96a8
by Olivier Fourdan
at 2017-07-31T18:15:45+08:00
Add xdg-output protocol
This protocol aims at describing outputs in way which is more in line
with the concept of an output on desktop oriented systems.
Some information are more specific to the concept of an output for a
desktop oriented system and may not make sense in other applications,
such as IVI systems for example.
The goal is to gradually move the desktop specific concepts out of the
core wl_output protocol.
For now it just features the position and logical size which describe
the output position and size in the global compositor space.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
6b62c321
by Olivier Fourdan
at 2017-07-31T18:57:58+08:00
configure.ac: force autotool to use star
To circumvent the 99 character filename limit.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
9ee1d597
by Jonas Ådahl
at 2017-07-31T18:57:58+08:00
configure.ac: Bump version to 1.10
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
875130ee
by Tomek Bury
at 2017-08-30T14:04:02+01:00
Use sysroot prefix for pkgdatadir variable
The pc_sysroot is automatically added to cflags and libs but not
to 'pkg-config --variable'
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
72699573
by Marco Martin
at 2017-09-26T09:49:23-04:00
Add a new version of the xdg-foreign protocol
Some methods will be renamed, so we need a new, not retrocompatible
protocol.
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
70d85926
by Marco Martin
at 2017-10-11T09:01:22+08:00
xdg-foreign-v2: Rename export and import calls
As export is a reserved keyword in C++, in order for the output
generated by wayland_scanner to compile correctly rename export to
export_toplevel and import to import_toplevel this needs a new protocol
version as is an incompatible change
[jadahl: Fix various documentation issues]
Signed-off-by: Marco Martin <notmart@gmail.com>
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
fc3305c3
by Jonas Ådahl
at 2017-10-11T16:20:05+08:00
configure.ac: Bump version to 1.11
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
fcb2a63c
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
Add xdg-shell to stable/
Add a copy of xdg-shell unstable v6 to stable/xdg-shell/xdg-shell.xml.
Folliwing this commit, it will go through a set of changes, before
being declared stable.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
-
709a1a0c
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Rename interfaces
Rename the interfaces according to the wayland-protocols policy. Since
the name 'xdg_shell' as an interface was already taken (by
xdg-shell-unstable-v5) zxdg_shell_v6 was renamed xdg_wm_base. The
surface role related interfaces were not renamed, as naming collision
is only unmanagable when exposed as globals via the registry.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
505a4f5d
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Update copyright notices
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Mike Blumenkrantz <zmike@osg.samsung.com>
-
092c9766
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Reword the xdg_wm_base introduction
Don't refer to things as "traditional desktop" as it is not defined
nor clear what that refers to; instead reword things in a more explicit
way. A reason for this is that xdg-shell is not strictly meant only for
traditional window stacking based desktop environments, but should be
equally suitable for stacking, tiling and potentially other styles as
well.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
e49a2c0b
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/positioner: Allow empty anchor_rect
Allow setting an empty anchor rectangle, so that one can map a popup
against a coordinate, not a pixel.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
af6cf5ec
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Replace 'monitor' with 'output'
There is no such thing as 'monitor' in Wayland, only outputs.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
43a09b15
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/surface: Add note about window position and geometry
A client might want to change the window geometry without wanting the
window to be moved, for example when changing the width of the border.
Point out that the compositor should treat the (x,y) coordinate of the
geometry as the top-left corner of the window, and not change the
position of the window as it appears on the screen if the (x,y)
coordinate changes.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
4fd4d234
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/toplevel: Clarify xdg_toplevel.set_parent(null)
Setting a null-surface as a toplevel parent should unset the
parent-child relationship. This was not specified, so lets do that.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
-
bb632281
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/toplevel: Chain multiple parent-child relationships
Change the semantics of xdg_toplevel.set_parent to allow chaining
multiple parent-child relationships together, while allowing
arbitrarily unmapping parents, while keeping what is left over of the
chain intact.
This makes things easier to manage when parent-child relationships
cross client borders, for example when using xdg_foreign.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
-
a3cf97ff
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/popup: Allow custom parent by passing null as parent
Allow using some other protocol (custom, or future xdg_* based) to set
up the parent-child relationship of a popup. This allows future
protocols to use xdg_popup when mapping popups over surfaces not based
on xdg_surface.
An example use case for this is the window menu, where a shells UI
client can use xdg_popup to create popup menus over windows it does not
have a xdg_surface of by having a custom protocol setting up the proper
parent-child relationship.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-By: Mike Blumenkrantz <zmike@osg.samsung.com>
-
0c761706
by Mike Blumenkrantz
at 2017-11-21T16:25:51+08:00
xdg-shell: clarify map/unmap wording
ensure that this is as precise and explicit as possible for all useful
cases and also define previously-unspecified behavior
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
6bff136f
by David Edmundson
at 2017-11-21T16:25:51+08:00
xdg-shell/positioner: Replace edge bitfield with extended enum
Bitfields allowed for impossible combinations of anchor edges, such as
being on the left and right edge. Use of explicit enumerations means we
don't need to handle that case.
Signed-off-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
8f96c079
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell/positioner: Clarify flip semantics with anchor offset
While there is no currently known usages of setting an anchor offset on
the same axis as the 'flip' constraint action is set, it must still be
specified so compositors behave the same.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
a8a7b0b2
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Fix typo
There is no configure 'request' only configure 'events'.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@samsung.com>
-
3c7dbb96
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Specify what happens when (un)maximizing while fullscreen
Specify that the maximize/unmaximize state requests only affects the
state a surface will return to if it is currently fullscreen.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@samsung.com>
-
a82ca1f3
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Clarify set_fullscreen semantics
It was not explicitly specified (as it is in set/unset_maximize) that
the compositor will respond with a configure event when a client asks to
be fullscreened, and the meaning of the output parameter was somewhat
awkwardly described.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@samsung.com>
-
cd1e13ed
by Jonas Ådahl
at 2017-11-21T16:25:51+08:00
xdg-shell: Add unset_fullscreen description
The description for xdg_toplevel.unset_fullscreen was completely
missing, so add it.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@samsung.com>
-
f68bafc9
by Jonas Ådahl
at 2017-11-22T13:58:40+08:00
xdg-shell: Soften fullscreen geometry requirements
Having a strict requirement on clients obeying the configured window
geometry for fullscreen toplevel surfaces might have the side effect of
making it harder or impossible to implement various hardware
optimizations on certain system configurations. By softening
requirements on the geometry while loosely defining the border fill, we
remove that restriction.
Clients that still want total control of the surrounding area can
still for example prepare the attached buffers to match the configured
surface size, or use subsurfaces in combination with wp_viewporter to
make up a surface matching the fullscreen window geometry dimensions.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Arnaud Vrac <rawoul@gmail.com>
Reviewed-by: Mike Blumenkrantz <zmike@samsung.com>
-
040a8698
by Jonas Ådahl
at 2017-12-02T09:51:59+08:00
Makefile.am: Install stable xdg-shell
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
0130366e
by Jonas Ådahl
at 2017-12-02T09:56:36+08:00
configure.ac: Bump version to 1.12
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
4f789286
by Alexandros Frantzis
at 2018-01-19T11:21:02+02:00
unstable: Add input-timestamps protocol
wl_pointer, wl_keyboard and wl_touch events currently use a 32-bit
timestamp with millisecond resolution. In some cases, notably latency
measurements, this resolution is too coarse to be useful.
This protocol provides additional high-resolution timestamps events,
which are emitted before the corresponding input event. Each timestamp
event contains a high-resolution, and ideally higher-accuracy, version
of the 'time' argument of the first subsequent supported input event.
Clients that care about high-resolution timestamps just need to keep
track of the last timestamp event they receive and associate it with the
next supported input event that arrives.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Acked-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
d852a6fd
by Mike Blumenkrantz
at 2018-01-19T13:02:31-06:00
xdg-shell: remove harmless typo
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-
d5ded4dd
by Jonas Ådahl
at 2018-02-14T20:29:40+08:00
configure.ac: Bump version to 1.13
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
bd7b0c62
by Mike Blumenkrantz
at 2018-05-03T16:24:51+02:00
xdg-shell: add enums for tiled window state to toplevel configure
this adds implementation from a related discussion long ago in which
it was decided that it would be useful for clients to know if/where their
windows were tiled so that various behaviors and visuals could be modified
to improve UX
a window which is e.g., tiled on the right side of the screen would set the
right|top|bottom tiled states in configure
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
[Jonas: Minor formatting fixes]
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Changes since v2: simplified docs
Changes since v1: added since=2 to enum members
-
d296d076
by Drew DeVault
at 2018-05-03T17:44:35+02:00
xdg-output: Add name and description events
This adds two events to the protocol. The goal is to allow clients to
give the user the ability to select outputs with the same names the
compositor uses and to identify outputs consistently across sessions.
The output name is a short and stiff identifier with strict limits on
permitted characters, which is suitable for storing in config files,
command line arguments, etc. A warmer "description" event is also
provided to (optionally) provide a more human readable name, and has
much broader restrictions on its form.
Signed-off-by: Drew DeVault <sir@cmpwn.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
[Jonas: Fixed formatting and commit subject]
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
c5f0f1a7
by Jonas Ådahl
at 2018-05-03T17:45:15+02:00
configure.ac: Bump version to 1.14
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
dae2a3dd
by Maciej Wolny
at 2018-06-18T12:05:05+03:00
Makefile.am: add include dir for AC_CONFIG_MACRO_DIR to work
da331647269ee9d73c4008ae901d107320bdc8d1 added a compatiblity macro for
old versions of pkg-config. However, the file in which that macro
resides was not included. From the autoconf docs: "Note that if you use
aclocal from Automake to generate aclocal.m4, you must also set
ACLOCAL_AMFLAGS = -I dir in your top-level Makefile.am.".
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
7287469e
by Drew DeVault
at 2018-07-04T23:23:14+02:00
xdg-shell: remove constraint on popup parents
It seems that this was partially done in
a3cf97ff982638bf7ed23b4303eba280c521b54d; this patch just corrects an
oversight.
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
76d1ae8c
by Simon Ser
at 2018-07-04T23:23:14+02:00
unstable: add xdg-decoration protocol
This adds a new protocol to negotiate server-side rendering of window
decorations for xdg-toplevels. This allows compositors that want to draw
decorations themselves to send their preference to clients, and clients that
prefer server-side decorations to request them.
This is inspired by a protocol from KDE [1] which has been implemented in
KDE and Sway and was submitted for consideration in 2017 [2]. This patch
provides an updated protocol with those concerns taken into account.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Drew DeVault <sir@cmpwn.com>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Eike Hein <hein@kde.org>
Reviewed-by: Alan Griffiths <alan.griffiths@canonical.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
[1] https://github.com/KDE/kwayland/blob/master/src/client/protocols/server-decoration.xml
[2] https://lists.freedesktop.org/archives/wayland-devel/2017-October/035564.html
-
65cc1094
by Jonas Ådahl
at 2018-07-04T23:23:14+02:00
configure.ac: Bump version to 1.15
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
3f282987
by Simon Ser
at 2018-07-16T20:58:02+02:00
xdg-output: add a transform example for the logical size
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
3bd79c2d
by Jonas Ådahl
at 2018-07-30T17:27:53+02:00
tests: Use public-code and private-code instead of code
The wayland-scanner sub-commands private-code and public-code replaced
the old code command, so lets use those in the tests instead.
This requires at least wayland-scanner 1.15.0.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
6d58be00
by Jonas Ådahl
at 2018-07-30T17:27:53+02:00
tests: Make wayland-scanner strict
Pass --strict to wayland-scanner in order to make it exit with failure
if something wasn't correct.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
db152d7c
by Carlos Garnacho
at 2018-07-30T17:42:39+02:00
text-input: Add v3 of the text-input protocol
This new protocol description is an evolution of v2.
- All pre-edit text styling is gone.
- Pre-edit cursor can span characters.
- No events regarding input panel (OSK) state nor covered rectangle.
Compositors are still free to handle situations where the keyboard
focus rectangle is covered by the input panel.
- No set_preferred_language request for clients.
- There is no event to send keysyms. Compositors can use wl_keyboard
interface instead.
- All state is double-buffered, with specified defaults.
- The compositor can be notified about external changes to the state.
- The client can detect outdated requests.
Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
31236887
by Markus Ongyerth
at 2018-07-30T18:14:56+02:00
xdg-shell: move maximized state definition together
The xdg-shell documentation had part of the maximized state render
implications in the `set_maximized` request documentation, not the
actual state.
This moves the relevant lines into the state description.
Signed-off-by: Markus Ongyerth <wl@ongy.net>
Reviewed-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
3ad11c68
by Markus Ongyerth
at 2018-07-30T18:15:18+02:00
xdg-shell: Make sure wording reflects expectations
The wording in xdg-shell's `set_*` requests implies the compositor
*will* honour the client's request.
This would give clients the control over their actual state, while the
general expectation is that clients kindly ask for state changes which
the compositor may follow.
This patch ensures the actual protocol text reflects these expectations.
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
298d888a
by Jonas Ådahl
at 2018-07-30T18:14:56+02:00
configure.ac: Bump version to 1.16
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
18032f66
by Johan Klokkhammer Helsing
at 2018-07-31T11:53:03+01:00
fullscreen-shell: Add missing license tag
Although it would probably default to the license at the root of the
repository anyway, it's best to be explicit about it, and also be
consistent with the other extensions.
The copyright holders have been assembled from git history and the
README.
Signed-off-by: Johan Klokkhammer Helsing <johan.helsing@qt.io>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
-
19ec5dcc
by Alexandros Frantzis
at 2018-11-12T16:32:54+02:00
Add zwp_linux_explicit_synchronization_v1
This protocol enables explicit synchronization of asynchronous graphics
operations on buffers on a per-commit basis. Support is currently
limited to dmabuf buffers and dma_fence fence FDs.
Explicit synchronization provides a more versatile notification
mechanism for buffer readiness and availability, and can be used to
improve efficiency by integrating with related functionality in display
and graphics APIs.
This protocol is also useful in ChromeOS ARC++ (running Android apps
inside ChromeOS, using Wayland as the communication protocol), where it
can enable integration of the ChromeOS compositor with the explicit
synchronization mechanisms of the Android display subsystem.
Finally, the per-commit nature of the release events provided by this
protocol potentially offers a solution to a deficiency of the
wl_buffer.release event (see
https://gitlab.freedesktop.org/wayland/wayland/issues/46).
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Daniel Stone <daniels@collabora.com>
[Pekka: dropped Reveman from maintainers]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
2c3b11d7
by emersion
at 2018-11-12T16:56:50+01:00
unstable: add primary-selection protocol
This primary selection is similar in spirit to the eponimous
in X11, allowing a quick "select text + middle click" shortcut
to copying and pasting.
It's otherwise very similar to its Wayland counterpart, and
explicitly made consistent with it.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Carlos Garnacho <carlosg@gnome.org>
-
9132fc86
by Jonas Ådahl
at 2018-11-12T16:59:01+01:00
configure.ac: Bump version to 1.17
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
47914962
by Alexandros Frantzis
at 2018-12-14T14:01:54+02:00
linux-explicit-synchronization: Allow fences with opaque EGL buffers
Add opaque EGL buffers to the supported buffer types for use with the
explicit synchronization protocol. Opaque EGL buffers rely on the same
EGL implementation in both the compositor and clients, which makes it
straightforward to manage client expectations about fence support for
such buffers.
Also make it clearer that implementations are free to support other
buffer types beyond the required ones.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
08903bdf
by Alexandros Frantzis
at 2018-12-14T14:01:54+02:00
linux-explicit-synchronization: Warn about using the protocol while using graphics APIs
Graphics APIs are expected to use this protocol under the hood, and
since there can only be one user of explicit synchronization per
surface, warn about using the protocol directly in such cases.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
57423eac
by Alexandros Frantzis
at 2018-12-14T14:01:54+02:00
linux-explicit-synchronization: Clarify implicit synchronization guarantees of release events
Clarify that after zwp_buffer_release_v1 events, otherwise unused
buffers can be reused without any additional implicit synchronization.
This is in contrast to wl_buffer.release, which doesn't guarantee that
implicit synchronization is not required to safely use a buffer after
the event is received.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
70ed9d7e
by Sebastian Krzyszkowiak
at 2019-01-17T16:57:49+02:00
xdg-shell: fix a typo
Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
fb9b2a87
by Chia-I Wu
at 2019-05-02T12:30:32+01:00
linux-dmabuf: clarify DRM_FORMAT_MOD_INVALID
DRM_FORMAT_MOD_INVALID means to derive the modifier from the dmabuf.
It provides legacy support and makes it easier to replace wl_drm.
v3: DRM_FORMAT_MOD_INVALID must be advertised to be supported (which
requires a version bump)
v4: no version bump, but a note for now
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
-
53624311
by Jonas Ådahl
at 2019-05-22T17:55:41+02:00
xdg-shell/README: Update E-mail address
As requested by Mike, update the E-mail address listed in the README.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
962dd535
by Simon Ser
at 2019-07-17T10:04:25+02:00
xdg-output: deprecate the xdg_output.done event
This commit makes it so a wl_output.done event is guaranteed to be sent with a
xdg_output.done event.
This protocol change has been discussed in a recent xorg-devel discussions [1].
First let's recap why a change is needed: Xwayland listens to both wl_output and
xdg_output changes. When an output's properties change, Xwayland expects to
receive both a wl_output.done event and an xdg_output.done event. If that's not
the case, Xwayland doesn't update its state (so old state is still exposed to
X11 clients).
Most of the time, both objects will be updated at the same time (e.g. the
current mode is changed, so both wl_output.mode and xdg_output.logical_size are
sent) so this won't be an issue. However in some situations only one of
wl_output or xdg_output changes. For instance:
- The mode is changed at the same time as the scale, resulting in the same
logical_size.
- The compositor doesn't expose the outputs' position via wl_output, so whenever
the position changes only xdg_output is updated.
Both KDE [2] and wlroots [3] have experienced this issue.
For this reason, I'd like to update the xdg-output protocol to make it mandatory
to always send a wl_output.done event after xdg_output changes. This effectively
makes wl_output.done atomically apply all output state (including the state of
add-on objects like xdg_output). This approach is pretty similar to
wl_surface.commit: this request will atomically apply surface state including
the state of e.g. the xdg_surface object tied to the wl_surface.
To update the protocol to reflect this new requirement we can either:
- **Bump xdg_output version**. The current protocol doesn't specify that
wl_output.done must be sent, adding this new requirement would be a breaking
change. We need to fix Xwayland for the current xdg_output version (maybe make
it non-atomic for the current version, atomic for the new one?). Should we
deprecate xdg_output.done in the new version?
- **Don't bump xdg_output version**. This clarifies what is expected in practice
by Xwayland, a major xdg_output consumer, and what is currently implemented by
all compositors.
There's one issue with the "don't bump" approach: indeed in practice compositors
always send wl_output.done and xdg_output.done in pairs, however the ordering
between those two events is not guaranteed. This means some compositors might
send this sequence:
wl_output.geometry(…)
wl_output.done()
xdg_output.logical_position(…)
xdg_output.done()
In this case the wl_output.done event fails to atomically apply the xdg_output
state.
For this reason, I think bumping the version is a better approach.
This commit also deprecates xdg_output.done, which doesn't have any purpose
anymore.
[1]: https://lists.x.org/archives/xorg-devel/2019-April/058148.html
[2]: https://phabricator.kde.org/D19253
[3]: https://github.com/swaywm/sway/issues/4064
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
b9d427db
by Simon Ser
at 2019-07-17T10:28:43+02:00
pointer-gestures: add a release request
This allows clients to destroy a gesture object before they disconnect.
The request isn't named "destroy", as this would conflict with
wayland-scanner's auto-generated destructor (which just destroys the
client-side object without sending any request).
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
e0d6ad1d
by Jan-Marek Glogowski
at 2019-07-17T13:43:00+02:00
xdg-shell: use case to change the app ID at runtime
LibreOffice is one big binary with explicit brandings for different
application modules. This is represented in X11 by a different
WM_CLASS setting for a window. The WM_CLASS is changed based on the
loaded document at runtime. As a result LibreOffice already offers
multiple desktop files with different icons, StartupWMClass
entries and application names.
This amendment of the set_app_id request just explicitly specifies
the use case to change a surfaces' app ID at runtime, so a compositor
implementor is made aware of it. Just as the WM_CLASS, a change of
the app ID should result in an update of the propertes of a surface
depending on the app ID, like the window icon specified in the
desktop file or a re-grouping of the surfaces in a task manager.
Signed-off-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
048102f2
by Simon Ser
at 2019-07-25T11:19:02+02:00
xdg-output: make xdg_output.description mutable
The output description is a human-readable text describing the output. Unlike
the name which uniquely identifies the output, it's intended to be displayed to
the user.
It might be desirable for a compositor to update an output's description. For
instance, when only one output is plugged in, it's not necessary to dump make,
model, serial and connector to the description, something like "Dell U2717D" is
enough. However when two identical outputs are plugged in it's necessary to add
e.g. the connector type to tell them apart ("Dell U2717D on HDMI"). See [1] for
a discussion about this.
This commit bumps xdg_output's version to allow compositors to update the
property.
[1]: https://github.com/swaywm/wlroots/issues/1623
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Acked-by: Olivier Fourdan <ofourdan@redhat.com>
-
630fb089
by Jonas Ådahl
at 2019-07-25T11:19:17+02:00
configure.ac: Bump version to 1.18
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
fad3a831
by Ivan Molodetskikh
at 2019-09-06T14:59:59+03:00
presentation-time: add missing bitfield marker
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Victor Berger <victor.berger@m4x.org>
-
51018825
by Simon Ser
at 2019-11-20T22:21:20+01:00
Add governance document
The idea of a better-defined governance model for wayland-protocols has
been discussed for quite a while [1].
A new GOVERNANCE document describes how changes to the wayland-protocols
repository are accepted. A set of members representing projects can vote
on merge requests sent via GitLab. The initial list of members is
available in the MEMBERS file.
[1]: https://lists.freedesktop.org/archives/wayland-devel/2019-February/040076.html
Signed-off-by: Drew DeVault <sir@cmpwn.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Johan Helsing <johan.helsing@qt.io>
Acked-by: Roman Gilg <subdiff@gmail.com>
Acked-by: Christopher James Halse Rogers <raof@ubuntu.com>
Acked-by: Alan Griffiths <alan.griffiths@canonical.com>
Acked-by: Jonas Ådahl <jadahl@gmail.com>
Cc: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Cc: Carlos Garnacho <carlosg@gnome.org>
Cc: David Edmundson <david@davidedmundson.co.uk>
-
3c302760
by Simon Ser
at 2019-11-20T22:55:15+01:00
Add .editorconfig
This allows editors to pick up the correct indent style for *.xml files.
Signed-off-by: Simon Ser <contact@emersion.fr>
-
6d0fc706
by Simon Ser
at 2019-11-21T13:47:56+01:00
readme: changes should be submitted via GitLab
510188250ea8 ("Add governance document") adds a GOVERNANCE document
describing development based on GitLab merge requests. Update the README
file accordingly.
Some information is duplicated across README and GOVERNANCE, this is
intentional to make README provide a more human-friendly, less
bureaucratic version. GOVERNANCE is still the authoritative version.
Signed-off-by: Simon Ser <contact@emersion.fr>
-
f4c76c4c
by Simon Ser
at 2019-11-21T15:46:50+01:00
Add .gitlab-ci.yml
The script runs automated protocol validation checks. The image is
generated using fd.o CI templates [1].
[1]: https://gitlab.freedesktop.org/wayland/ci-templates
Signed-off-by: Simon Ser <contact@emersion.fr>
Closes: https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/5
-
733de762
by Simon Ser
at 2019-12-18T17:42:23+00:00
Convert plaintext documents to Markdown
This converts GOVERNANCE, MEMBERS and README to Markdown documents.
These are only cosmetic changes, the actual contents and wording have
been retained.
GitLab pretty-prints Markdown and adds anchors. We can now add links
from one document to another.
Unfortunately GOVERNANCE lettered lists have been converted to numbered
lists, because Markdown doesn't support the former.
Signed-off-by: Simon Ser <contact@emersion.fr>
Closes: https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/3
-
82d4c152
by Ivan Molodetskikh
at 2020-01-22T11:53:03+03:00
xdg-shell: add missing enum attribute to resize
This helps binding generators such as the one in wayland-rs.
Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
-
5664ca1e
by Johan Klokkhammer Helsing
at 2020-02-25T15:24:11+01:00
Update point-of-contact for Qt
Eskil is the team lead for the Qt Oslo Graphics team.
-
2b0c87ea
by Jonas Ådahl
at 2020-02-29T15:14:25+01:00
xdg-shell: Remove left-over paragraph from pre positioner versions
It mentioned the now removed x, y parameters of xdg_surface.get_popup.
The xdg_positioner now has the relevant documentation that was
previously documented by the now removed paragraph.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
ebbad29e
by Jonas Ådahl
at 2020-02-29T15:34:42+01:00
xdg-shell: Add support for implicit popup repositioning
This commit adds protocol additions making it possible to implicitly
reposition an already mapped popup if the conditions for the constraint
changed (e.g. toplevel moved).
Implicit popup moving is done by setting a adjustment flag on the
positioner used to create it that will cause the compositor to adjust
the position as the conditions used to constrain it change.
These changes may include, for example, changes in the position of the
parent window or the geometry of the work area. To allow the client to
update its content in response to the updated position, the client must
ack the configure event, optionally with new content. Until the client
acks this configure event, the existing positioner will continue to be
used.
Implicit repositioning by itself is racy regarding inter-surface
synchronization of applied state. Inter-surface synchronization is
deliberately left out of xdg-shell, and left to be handled externally.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
26f494ed
by Jonas Ådahl
at 2020-02-29T15:34:42+01:00
xdg-shell: Add support for explicit popup repositioning
This commit adds protocol additions making it possible to request that a
popup should be repositioned according to a new xdg_positioner object.
Explicit popup moving is done using a new request on xdg_popup:
xdg_popup.reposition. What it does is change the parameters used for
positioning a popup by providing a new xdg_positioner object. This
request is coupled with a new event; xdg_popup.repositioned, sent
together with the configure events (xdg_popup.configure and
xdg_surface.configure) to notify about the completion of the reposition
request. The reposition request also takes a token that is later passed
via the repositioned event; this is done so that a client may determine
for which reposition request the compositor has sent configure events.
Synchronization between surfaces to avoid state application race
condition are deliberately left out, and should be handled by an
external protocol.
To brief the compositor of the future dimension of the parent that the
compositor should position the popup against, a
xdg_positioner.set_parent_size request is added.
Lastly, a request to couple a xdg_positioner object with a parent
configure event is added (xdg_positioner.set_parent_configure) in
order for a compositor to pair a popup reposition request with a pending
configure event, and it's resulting window geometry. This is necessary
to, for example, properly constrain a popup given a future parent state.
An example of when this may be necessary is an interactive resize where
both the toplevel position and the relative popup position changes.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
8f6095f2
by Jonas Ådahl
at 2020-02-29T19:01:12+01:00
configure.ac: Bump version to 1.19
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
035ffedd
by Jonas Ådahl
at 2020-02-29T20:55:11+01:00
Makefile.am: Also distribute README.md, GOVERNANCE.md and MEMBERS.md
README was distributed by default due to implicit autotools rules, so
when we renamed to README.md, it stopped being included. While at it,
also add the two other new files.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
b0a25f26
by Jonas Ådahl
at 2020-02-29T20:56:39+01:00
configure.ac: Bump version to 1.20
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
e8f7d4eb
by Simon Ser
at 2020-04-07T17:50:45+02:00
xdg-shell: describe how to re-map an unmapped toplevel
Signed-off-by: Simon Ser <contact@emersion.fr>
-
684cd23a
by Simon Ser
at 2020-04-07T17:50:45+02:00
xdg-shell: explain how clients need to perform an initial commit
This wasn't explicit reading the mapping requirements.
Signed-off-by: Simon Ser <contact@emersion.fr>
-
6be6e00c
by Vlad Zahorodnii
at 2020-06-19T12:45:12+03:00
Use correct indefinite article before "xdg"
Since the abbreviation "XDG" starts with a vowel sound, the correct
article is "an."
Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-
91bfada6
by Jonas Ådahl
at 2020-10-14T09:45:06+00:00
README.md: Add some merge request triaging conventions
Add documented Gitlab procedures to help protocol reviewers and
maintainers to get a better picture of the state of merge requests. To
make this more reliable, document procedures how to triage and manage
merge requests using labels.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
3a74660e
by Roman Gilg
at 2020-10-15T23:44:07+02:00
Update point-of-contact for KDE
-
4ed0cafe
by Bhushan Shah
at 2020-11-03T20:16:27+05:30
text-input: document behavior regarding multiple text-inputs
Currently protocol does not specify what should happen if multiple
text-inputs are created by same client, which is why this is more or
less undefined behavior currently in compositor implementations.
If client has created more than one text-input objects and surface owned
by the client is focused, then compositor must send enter event to all
text-input objects, in case of enable request however only one
text-input must be enabled per client per seat.
Signed-off-by: Bhushan Shah <bshah@kde.org>
-
1c19d4bc
by onox
at 2021-01-03T18:57:27+01:00
presentation-time: Add enum attribute to 'flags'
Signed-off-by: onox <denkpadje@gmail.com>
-
d56d737d
by onox
at 2021-01-03T19:26:44+01:00
pointer-constraints: Add enum attribute to 'lifetime'
Signed-off-by: onox <denkpadje@gmail.com>
-
0bb5f5fe
by onox
at 2021-01-05T19:36:32+01:00
linux-dmabuf: Add enum attribute to 'flags'
Signed-off-by: onox <denkpadje@gmail.com>
-
ab3c1d56
by onox
at 2021-01-05T19:37:02+01:00
fullscreen-shell: Add enum attributes to various arguments
Signed-off-by: onox <denkpadje@gmail.com>
-
d10d18f3
by onox
at 2021-01-05T19:37:16+01:00
text-input: Add enum attributes to various arguments
Signed-off-by: onox <denkpadje@gmail.com>
-
f899eff0
by Pekka Paalanen
at 2021-02-16T11:32:58+02:00
linux-dmabuf: no buffer errors on device disappearance
This was prompted by the discussion from
https://lists.freedesktop.org/archives/dri-devel/2020-May/266611.html
which is not the final wording.
When a DRM device is hot-unplugged, particularly if it is the Wayland
compositor's compositing GPU, EGL may start returning errors from trying to use
the client's dmabuf. Or, if the client is rendering on another GPU which gets
hot-unplugged, the dmabuf the compositor already has may start failing.
Hot-unplug is an abrupt global action, and there is no way a client or a
compositor could ensure they clean up before things start failing. It is not
the client's fault, so the client should not get disconnected if already
existing wl_buffer objects start failing. This patch add the wording to the
protocol to this effect.
The intention is that the compositor replaces the failed buffers with some
placeholder content. There is no way this could be glitch-free. In its own pace
the client should discover the DRM device is gone, clean up, and perhaps use
something else. How exactly that should happen depends on the rendering API the
client is using.
This is a tiny step towards making DRM device hot-unplug not crash
applications that wish to handle the unplug gracefully.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
79b9a425
by Jonas Ådahl
at 2021-03-26T15:50:36+01:00
Add meson build system support
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
5cb6b92f
by Jonas Ådahl
at 2021-03-26T15:50:36+01:00
tests: Add compile tests
Only tested by the meson build system.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
1e524147
by Jonas Ådahl
at 2021-03-26T15:50:36+01:00
ci: Switch to upstream ci-templates and use Debian bullseye
This switches to the ci-templates that is found on
https://gitlab.freedesktop.org/freedesktop/ci-templates/
While at it, switch to Debian bullseye, as this contains more reasonably
versioned build tools, i.e. a new enough version of meson.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
5a2611b7
by Jonas Ådahl
at 2021-03-26T15:50:36+01:00
ci: Add test-meson step
Apart from the autotools build system, also test the meson build system.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
1ad48a50
by Jonas Ådahl
at 2021-03-26T18:12:27+01:00
build: Fix wayland-protocols.pc when using autotools
"datadir" is not the same thing in meson and autotools.
In autoconf "datadir" is "${datarootdir}", which expands to
"${prefix}/share". @datarootdir@ expands to "${prefix}/share". There
seems to be no variable that expands to "share".
In meson "datadir" is "share".
So, avoid the "datadir" variable, just expand "datarootdir" it manually
instead. This unbreaks the recently broken autotools setup.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
0cf92d7a
by Jonas Ådahl
at 2021-03-26T17:29:51+00:00
ci: Use ci-fairy to check for Signed-off-by
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
42da2294
by Jonas Ådahl
at 2021-03-31T08:44:50+02:00
ci: Make the FDO_UPSTREAM_REPO variable global
ci-fairy doesn't know how to to look at $CI_MERGE_REQUEST_PROJECT_PATH
right now, so if we don't manually set $FDO_UPSTREAM_REPO, ci-fairy will
(without verbose logging turned on) silently fall back on the source
repository project path for finding the branch point. This might fail if
the owner of the source repository hasn't updated the `master` branch of
their fork.
Related: https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/32
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
3683a5eb
by Simon Ser
at 2021-03-31T07:24:53+00:00
linux-dmabuf: clarify what mixed valid/INVALID modifiers mean
This commit makes it clear that compositors can send valid modifiers and
DRM_FORMAT_MOD_INVALID for a given format. This means that the compositor
supports both implicit and explicit modifiers. See the warning further
down:
> Warning: It should be an error if the format/modifier pair was not
> advertised with the modifier event. This is not enforced yet because
> some implementations always accept DRM_FORMAT_MOD_INVALID. Also
> version 2 of this protocol does not have the modifier event.
Xwayland already requires compositors to send DRM_FORMAT_MOD_INVALID
for importing buffers with an implicit modifier [1].
In a future protocol version, it would be nice to make it a protocol
error (or at least a soft failure) to use any format/modifier pair that
wasn't advertised. A use-case for this is Vulkan compositors: the Vulkan
DMA-BUF extensions require an explicit modifier and cannot import
buffers which have an implicit modifier.
[1]: https://gitlab.freedesktop.org/xorg/xserver/-/blob/6c51818a0f55282cbe5a870f58ca82ca45ee472d/hw/xwayland/xwayland-glamor-gbm.c#L328
Signed-off-by: Simon Ser <contact@emersion.fr>
-
af29ece3
by Vlad Zahorodnii
at 2021-04-05T07:55:14+00:00
fullscreen-shell: Clarify that present requests assign a surface role
Currently, the spec doesn't say explicitly that present requests assign
a surface role. Given that, it can be viewed as the protocol modifies
an already assigned surface role, e.g. xdg-toplevel, and present requests
only act as hints.
Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
-
17bef0ed
by Peter Hutterer
at 2021-04-13T11:22:09+10:00
pointer-gestures: correct description of pinch
This is being picky, but "pinch/spread" is the physical gesture, zoom and
rotate is the effect that clients provide in response to that gesture.
Let's use pinch only here since spread is more ambiguous in english, as anyone
who's ever had butter on their bread would know.
Also, everything else is referring to it as pinch anyway, so zoom/rotate here
is the odd one out.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
b1670b4d
by Simon Ser
at 2021-04-14T07:09:55+00:00
xdg-foreign: add error enums
The protocol states that the client must provide xdg_toplevel surfaces,
but doesn't specify protocol error values that can be sent by the
compositor.
Signed-off-by: Simon Ser <contact@emersion.fr>
-
5381e39b
by Jonas Ådahl
at 2021-04-14T07:49:16+00:00
Replace `unstable` with `staging`
Time has told us that the effort going from `unstable` to `stable` is
enough of a burdon meaning very few protocols are ever declared stable.
To mitigate this, and thus avoid having protocols being "stuck" being
"unstable" indefinitely, replace the "unstable" -> "stable" procedure
with a "staging" -> "stable" procedure, where declaring a protocol
stable does not involve any changes to any implementations.
The only side effect of this is that version numbers are to forever be
part of all interface names and protocol XML files.
Closes: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/30
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
-
032a0bdc
by Aleix Pol
at 2021-04-30T14:26:50+02:00
Include a new xdg_activation protocol
Signed-off-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
-
2939d4a0
by Carlos Garnacho
at 2021-04-30T14:26:54+02:00
staging/xdg-activation: Describe interoperation with X11
X11 had its own startup notification protocol, describe how could Wayland
compositors implement interoperation between Wayland and X11 clients,
should this be desired.
Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
-
2e92d346
by Jonas Ådahl
at 2021-04-30T16:14:29+02:00
Makefile.am: Include meson-only files
This makes it possible to use both autotools and meson to build and
install the tarball.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
-
177ff911
by Jonas Ådahl
at 2021-04-30T18:27:52+02:00
build: Bump version to 1.21
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>