Commit graph

231 commits

Author SHA1 Message Date
Simon Ser
36cee4bdbc xdg-activation-v1: clarify set_{serial,surface}
Make it clearer what the requests are used for.

Signed-off-by: Simon Ser <contact@emersion.fr>
2021-07-01 20:38:30 +00:00
Simon Ser
353ffc65ff readme: mention the DCO
We haven't mentionned the DCO anywhere, yet we were requiring all
contributions to have a Signed-off-by line to accept it.

Add a reference to the DCO in our README's "development procedure"
section.

Signed-off-by: Simon Ser <contact@emersion.fr>
2021-06-25 10:14:13 +02:00
Xavier Claessens
cb38399d36 tests: Fix build with -Wextra
Unused arguments warnings are treated as errors in those tests
otherwise.

Fixes: #53.

Signed-off-by: Xavier Claessens <xavier.claessens@collabora.com>
2021-06-23 14:30:50 -04:00
Manuel Stoeckl
f01202f4b7 xdg-output: fix minor calculation error
Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2021-06-07 17:10:59 +00:00
Vlad Zahorodnii
577bdce99d xdg-activation: Fix an inconsistency
The spec uses the terms "presentation token" and "activation token"
interchangeably, which can cause confusion.

Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
2021-06-07 16:50:13 +00:00
Issam E. Maghni
9eb8819bb1 tests: use dynamic python path
Stop hardcoding the Python path to /usr/bin/python3. Not all systems
have Python installed to /usr/bin, and some users might have installed
Python to a custom location.

Instead, use /usr/bin/env, which performs a $PATH lookup to find the
Python executable.

Signed-off-by: Issam E. Maghni <issam.e.maghni@mailbox.org>
2021-06-03 13:25:00 -04:00
Simon Ser
b4ecb55e07 members: add GitLab usernames
Add GitLab usernames for all members, so that they can easily be
mentionned in merge requests or issues.

The only missing username is for Alan Griffiths, I don't think they
have a GitLab account at the moment.

Signed-off-by: Simon Ser <contact@emersion.fr>
2021-05-18 17:53:22 +00:00
Jonas Ådahl
177ff9119d build: Bump version to 1.21
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2021-04-30 18:27:52 +02:00
Jonas Ådahl
2e92d3460d 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>
2021-04-30 16:14:29 +02:00
Carlos Garnacho
2939d4a05e 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>
2021-04-30 14:26:54 +02:00
Aleix Pol
032a0bdc9b 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>
2021-04-30 14:26:50 +02:00
Jonas Ådahl
5381e39bab 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>
2021-04-14 07:49:16 +00:00
Simon Ser
b1670b4dda 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>
2021-04-14 07:09:55 +00:00
Peter Hutterer
17bef0eddd 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>
2021-04-13 11:22:09 +10:00
Vlad Zahorodnii
af29ece33c 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>
2021-04-05 07:55:14 +00:00
Simon Ser
3683a5eb66 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]: 6c51818a0f/hw/xwayland/xwayland-glamor-gbm.c (L328)

Signed-off-by: Simon Ser <contact@emersion.fr>
2021-03-31 07:24:53 +00:00
Jonas Ådahl
42da22947b 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>
2021-03-31 08:44:50 +02:00
Jonas Ådahl
0cf92d7ad1 ci: Use ci-fairy to check for Signed-off-by
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2021-03-26 17:29:51 +00:00
Jonas Ådahl
1ad48a50a4 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>
2021-03-26 18:12:27 +01:00
Jonas Ådahl
5a2611b7ad 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>
2021-03-26 15:50:36 +01:00
Jonas Ådahl
1e52414765 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>
2021-03-26 15:50:36 +01:00
Jonas Ådahl
5cb6b92f01 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>
2021-03-26 15:50:36 +01:00
Jonas Ådahl
79b9a42514 Add meson build system support
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2021-03-26 15:50:36 +01:00
Pekka Paalanen
f899eff0a7 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>
2021-02-16 11:32:58 +02:00
onox
d10d18f3d4
text-input: Add enum attributes to various arguments
Signed-off-by: onox <denkpadje@gmail.com>
2021-01-05 19:37:16 +01:00
onox
ab3c1d5682
fullscreen-shell: Add enum attributes to various arguments
Signed-off-by: onox <denkpadje@gmail.com>
2021-01-05 19:37:02 +01:00
onox
0bb5f5fe68
linux-dmabuf: Add enum attribute to 'flags'
Signed-off-by: onox <denkpadje@gmail.com>
2021-01-05 19:36:32 +01:00
onox
d56d737dbb
pointer-constraints: Add enum attribute to 'lifetime'
Signed-off-by: onox <denkpadje@gmail.com>
2021-01-03 19:26:44 +01:00
onox
1c19d4bc31
presentation-time: Add enum attribute to 'flags'
Signed-off-by: onox <denkpadje@gmail.com>
2021-01-03 18:57:27 +01:00
Bhushan Shah
4ed0cafeef 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>
2020-11-03 20:16:27 +05:30
Roman Gilg
3a74660e94 Update point-of-contact for KDE 2020-10-15 23:44:07 +02:00
Jonas Ådahl
91bfada605 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>
2020-10-14 09:45:06 +00:00
Vlad Zahorodnii
6be6e00c02 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>
2020-06-19 12:45:12 +03:00
Simon Ser
684cd23ae3
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>
2020-04-07 17:50:45 +02:00
Simon Ser
e8f7d4ebbd
xdg-shell: describe how to re-map an unmapped toplevel
Signed-off-by: Simon Ser <contact@emersion.fr>
2020-04-07 17:50:45 +02:00
Jonas Ådahl
b0a25f26d3 configure.ac: Bump version to 1.20
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2020-02-29 20:56:39 +01:00
Jonas Ådahl
035ffeddd6 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>
2020-02-29 20:55:11 +01:00
Jonas Ådahl
8f6095f242 configure.ac: Bump version to 1.19
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2020-02-29 19:01:12 +01:00
Jonas Ådahl
26f494edb0 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>
2020-02-29 15:34:42 +01:00
Jonas Ådahl
ebbad29e3f 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>
2020-02-29 15:34:42 +01:00
Jonas Ådahl
2b0c87ea5e 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>
2020-02-29 15:14:25 +01:00
Johan Klokkhammer Helsing
5664ca1ef5 Update point-of-contact for Qt
Eskil is the team lead for the Qt Oslo Graphics team.
2020-02-25 15:24:11 +01:00
Ivan Molodetskikh
82d4c152a5
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>
2020-01-22 11:53:03 +03:00
Simon Ser
733de76221 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
2019-12-18 17:42:23 +00:00
Simon Ser
f4c76c4cc5
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
2019-11-21 15:46:50 +01:00
Simon Ser
6d0fc70656
readme: changes should be submitted via GitLab
510188250e ("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>
2019-11-21 13:47:56 +01:00
Simon Ser
3c30276063
Add .editorconfig
This allows editors to pick up the correct indent style for *.xml files.

Signed-off-by: Simon Ser <contact@emersion.fr>
2019-11-20 22:55:15 +01:00
Simon Ser
510188250e
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>
2019-11-20 22:21:20 +01:00
Ivan Molodetskikh
fad3a831d4 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>
2019-09-06 14:59:59 +03:00
Jonas Ådahl
630fb08910 configure.ac: Bump version to 1.18
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2019-07-25 11:19:17 +02:00