Commit graph

194 commits

Author SHA1 Message Date
Dorota Czaplejewicz
df315b11ee text-input: Add on_screen_input_provided hint
The new hint is meant to indicate that the text input already provides an on-screen means to enter data, and that using the system provided input method may not be needed.

It should be used when the client presents the user with a custom on-screen input method, like an on-screen keyboard, or perhaps a dropdown list.

The new hint is meant to address the issue when the system input method is an on-screen keyboard. Without the hint, the input method would not know that it's not needed, unless the client refrained from using the input method protocol at all.

With the hint, the input method can still be enabled, while not displaying a second on-screen keyboard. This allows for the system input method to still provide accessibility services, as well as text completion or prediction.

Based on discussion in https://gitlab.gnome.org/GNOME/gtk/merge_requests/978

Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
2021-12-06 12:03:35 +00:00
Peng Wu
155d5774e1 text-input: Add preedit_commit_mode event for mouse click event
IBus update_preedit_string_with_mode feature send the preedit text and
the commit mode to the input method module, use preedit_commit_mode event
to send the commit mode together with the preeedit text.

IBusInputContext specify how input context interact with the keyboard,
but sometimes mouse click also interacts with the input context, too.

For Firefox, if some preedit text is visible with ibus-hangul input method;
after mouse click, the preedit will be committed twice.

To fix this issue, ibus-hangul can send preedit text and commit mode
together; after mouse click, the preedit is handled directly in
input method module of Firefox, and the preedit is committed in
the current text widget.

For detailed analysis, please read the merge request comments.
URL: https://gitlab.freedesktop.org/wayland/wayland-protocols/merge_requests/30

Signed-off-by: Peng Wu <pwu@redhat.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Roman Gilg <subdiff@gmail.com>
Reviewed-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
2021-03-22 13:35:59 +01:00
Simon Ser
ec2b62cabf text-input: copy over v3 to v4
v4 will be used for iterating over the protocol.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Roman Gilg <subdiff@gmail.com>
Reviewed-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
2021-03-22 13:35:45 +01:00
Simon Ser
460f65c0d2 Revert "text-input: Add preedit_commit_mode event for mouse click event"
This reverts commit 353ed023c4.

This made a protocol addition without bumping the version.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Roman Gilg <subdiff@gmail.com>
Reviewed-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>
2021-03-22 13:35:07 +01:00
Peng Wu
353ed023c4 text-input: Add preedit_commit_mode event for mouse click event
IBus update_preedit_string_with_mode feature send the preedit text and
the commit mode to the input method module, use preedit_commit_mode event
to send the commit mode together with the preeedit text.

IBusInputContext specify how input context interact with the keyboard,
but sometimes mouse click also interacts with the input context, too.

For Firefox, if some preedit text is visible with ibus-hangul input method;
after mouse click, the preedit will be committed twice.

To fix this issue, ibus-hangul can send preedit text and commit mode
together; after mouse click, the preedit is handled directly in
input method module of Firefox, and the preedit is committed in
the current text widget.

For detailed analysis, please read the merge request comments.
URL: https://gitlab.freedesktop.org/wayland/wayland-protocols/merge_requests/30
2020-06-30 17:30:06 +08: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
Simon Ser
048102f21a 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>
2019-07-25 11:19:02 +02:00
Jan-Marek Glogowski
e0d6ad1d5e 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>
2019-07-17 13:43:00 +02:00
Simon Ser
b9d427dbc6 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>
2019-07-17 10:28:43 +02:00
Simon Ser
962dd53537 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>
2019-07-17 10:04:25 +02:00
Jonas Ådahl
536243111b 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>
2019-05-22 17:55:41 +02:00
Chia-I Wu
fb9b2a8731 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>
2019-05-02 12:30:32 +01:00
Sebastian Krzyszkowiak
70ed9d7ee8 xdg-shell: fix a typo
Signed-off-by: Sebastian Krzyszkowiak <dos@dosowisko.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2019-01-17 16:57:49 +02:00
Alexandros Frantzis
57423eac60 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>
2018-12-14 14:01:54 +02:00
Alexandros Frantzis
08903bdf90 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>
2018-12-14 14:01:54 +02:00
Alexandros Frantzis
47914962d8 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>
2018-12-14 14:01:54 +02:00
Jonas Ådahl
9132fc867d configure.ac: Bump version to 1.17
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2018-11-12 16:59:01 +01:00
emersion
2c3b11d76f 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>
2018-11-12 16:56:50 +01:00
Alexandros Frantzis
19ec5dcc4b 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>
2018-11-12 16:32:54 +02:00
Johan Klokkhammer Helsing
18032f6672 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>
2018-07-31 11:53:03 +01:00
Jonas Ådahl
298d888ac7 configure.ac: Bump version to 1.16
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2018-07-30 18:14:56 +02:00
Markus Ongyerth
3ad11c68ab 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>
2018-07-30 18:15:18 +02:00
Markus Ongyerth
31236887df 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>
2018-07-30 18:14:56 +02:00
Carlos Garnacho
db152d7c6f 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>
2018-07-30 17:42:39 +02:00
Jonas Ådahl
6d58be0035 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>
2018-07-30 17:27:53 +02:00
Jonas Ådahl
3bd79c2ddc 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>
2018-07-30 17:27:53 +02:00
Simon Ser
3f282987d6 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>
2018-07-16 20:58:02 +02:00
Jonas Ådahl
65cc1094f7 configure.ac: Bump version to 1.15
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2018-07-04 23:23:14 +02:00
Simon Ser
76d1ae8c65 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
2018-07-04 23:23:14 +02:00
Drew DeVault
7287469e0f 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>
2018-07-04 23:23:14 +02:00
Maciej Wolny
dae2a3dd09 Makefile.am: add include dir for AC_CONFIG_MACRO_DIR to work
da33164726 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>
2018-06-18 12:05:05 +03:00
Jonas Ådahl
c5f0f1a739 configure.ac: Bump version to 1.14
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2018-05-03 17:45:15 +02:00
Drew DeVault
d296d0760c 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>
2018-05-03 17:44:35 +02:00
Mike Blumenkrantz
bd7b0c628a 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
2018-05-03 16:24:51 +02:00
Jonas Ådahl
d5ded4ddaf configure.ac: Bump version to 1.13
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2018-02-14 20:29:40 +08:00
Mike Blumenkrantz
d852a6fd59 xdg-shell: remove harmless typo
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2018-01-19 13:02:31 -06:00
Alexandros Frantzis
4f789286e4 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>
2018-01-19 11:21:02 +02:00
Jonas Ådahl
0130366ee0 configure.ac: Bump version to 1.12
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2017-12-02 09:56:36 +08:00
Jonas Ådahl
040a8698cd Makefile.am: Install stable xdg-shell
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2017-12-02 09:51:59 +08:00
Jonas Ådahl
f68bafc9c3 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>
2017-11-22 13:58:40 +08:00
Jonas Ådahl
cd1e13ed6d 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>
2017-11-21 16:25:51 +08:00
Jonas Ådahl
a82ca1f35b 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>
2017-11-21 16:25:51 +08:00
Jonas Ådahl
3c7dbb9646 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>
2017-11-21 16:25:51 +08:00