Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion thirdparty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1185,7 +1185,7 @@ Files extracted from upstream source:
# wayland-protocols

- Upstream: https://gitlab.freedesktop.org/wayland/wayland-protocols
- Version: 1.33 (54346071a5f211f2c482889f2c8ee3b5ecda63ab, 2024)
- Version: 1.45 (0091197f5c1b1f2c131f1410e99f9c95d50646be, 2025)
- License: MIT

Files extracted from upstream source:
Expand Down
2 changes: 1 addition & 1 deletion thirdparty/wayland-protocols/stable/tablet/README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Tablet protocol

Maintainers:
Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer <peter.hutterer@who-t.net> (@whot)
181 changes: 150 additions & 31 deletions thirdparty/wayland-protocols/stable/tablet/tablet-v2.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<protocol name="tablet_unstable_v2">
<protocol name="tablet_v2">

<copyright>
Copyright 2014 © Stephen "Lyude" Chandler Paul
Copyright 2015-2016 © Red Hat, Inc.
Copyright 2015-2024 © Red Hat, Inc.

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Expand Down Expand Up @@ -104,18 +104,9 @@
compositor-specific policy when a tool can be removed. Common approaches
will likely include some form of removing a tool when all tablets the
tool was used on are removed.

Warning! The protocol described in this file is experimental and
backward incompatible changes may be made. Backward compatible changes
may be added together with the corresponding interface version bump.
Backward incompatible changes are done by bumping the version number in
the protocol and interface names and resetting the interface version.
Once the protocol is to be declared stable, the 'z' prefix and the
version number in the protocol and interface names are removed and the
interface version number is reset.
</description>

<interface name="zwp_tablet_manager_v2" version="1">
<interface name="zwp_tablet_manager_v2" version="2">
<description summary="controller object for graphic tablet devices">
An object that provides access to the graphics tablets available on this
system. All tablets are associated with a seat, to get access to the
Expand All @@ -139,7 +130,7 @@
</request>
</interface>

<interface name="zwp_tablet_seat_v2" version="1">
<interface name="zwp_tablet_seat_v2" version="2">
<description summary="controller object for graphic tablet devices of a seat">
An object that provides access to the graphics tablets available on this
seat. After binding to this interface, the compositor sends a set of
Expand Down Expand Up @@ -190,7 +181,7 @@
</event>
</interface>

<interface name="zwp_tablet_tool_v2" version="1">
<interface name="zwp_tablet_tool_v2" version="2">
<description summary="a physical tablet tool">
An object that represents a physical tool that has been, or is
currently in use with a tablet in this seat. Each wp_tablet_tool
Expand Down Expand Up @@ -576,7 +567,7 @@
</enum>
</interface>

<interface name="zwp_tablet_v2" version="1">
<interface name="zwp_tablet_v2" version="2">
<description summary="graphics tablet device">
The wp_tablet interface represents one graphics tablet device. The
tablet interface itself does not generate events; all events are
Expand All @@ -596,19 +587,33 @@

<event name="name">
<description summary="tablet device name">
A descriptive name for the tablet device.

If the device has no descriptive name, this event is not sent.

This event is sent in the initial burst of events before the
wp_tablet.done event.
wp_tablet.done event.
</description>
<arg name="name" type="string" summary="the device name"/>
</event>

<event name="id">
<description summary="tablet device USB vendor/product id">
<description summary="tablet device vendor/product id">
The vendor and product IDs for the tablet device.

The interpretation of the id depends on the wp_tablet.bustype.
Prior to version v2 of this protocol, the id was implied to be a USB
vendor and product ID. If no wp_tablet.bustype is sent, the ID
is to be interpreted as USB vendor and product ID.

If the device has no vendor/product ID, this event is not sent.
This can happen for virtual devices or non-USB devices, for instance.

This event is sent in the initial burst of events before the
wp_tablet.done event.
</description>
<arg name="vid" type="uint" summary="USB vendor id"/>
<arg name="pid" type="uint" summary="USB product id"/>
<arg name="vid" type="uint" summary="vendor id"/>
<arg name="pid" type="uint" summary="product id"/>
</event>

<event name="path">
Expand Down Expand Up @@ -649,9 +654,36 @@
the object.
</description>
</event>

<!-- Version 2 additions -->

<enum name="bustype" since="2">
<description summary="bus type ">
Describes the bus types this tablet is connected to.
</description>
<entry name="usb" value="3" summary="USB"/>
<entry name="bluetooth" value="5" summary="Bluetooth"/>
<entry name="virtual" value="6" summary="Virtual"/>
<entry name="serial" value="17" summary="Serial"/>
<entry name="i2c" value="24" summary="I2C"/>
</enum>

<event name="bustype" since="2">
<description summary="tablet device bus type">
The bustype argument is one of the BUS_ defines in the Linux kernel's
linux/input.h

If the device has no known bustype or the bustype cannot be
queried, this event is not sent.

This event is sent in the initial burst of events before the
wp_tablet.done event.
</description>
<arg name="bustype" type="uint" enum="bustype" summary="bus type"/>
</event>
</interface>

<interface name="zwp_tablet_pad_ring_v2" version="1">
<interface name="zwp_tablet_pad_ring_v2" version="2">
<description summary="pad ring">
A circular interaction area, such as the touch ring on the Wacom Intuos
Pro series tablets.
Expand Down Expand Up @@ -765,7 +797,7 @@
</event>
</interface>

<interface name="zwp_tablet_pad_strip_v2" version="1">
<interface name="zwp_tablet_pad_strip_v2" version="2">
<description summary="pad strip">
A linear interaction area, such as the strips found in Wacom Cintiq
models.
Expand Down Expand Up @@ -881,7 +913,7 @@
</event>
</interface>

<interface name="zwp_tablet_pad_group_v2" version="1">
<interface name="zwp_tablet_pad_group_v2" version="2">
<description summary="a set of buttons, rings and strips">
A pad group describes a distinct (sub)set of buttons, rings and strips
present in the tablet. The criteria of this grouping is usually positional,
Expand Down Expand Up @@ -984,14 +1016,14 @@
<description summary="mode switch event">
Notification that the mode was switched.

A mode applies to all buttons, rings and strips in a group
A mode applies to all buttons, rings, strips and dials in a group
simultaneously, but a client is not required to assign different actions
for each mode. For example, a client may have mode-specific button
mappings but map the ring to vertical scrolling in all modes. Mode
indices start at 0.

Switching modes is compositor-dependent. The compositor may provide
visual cues to the client about the mode, e.g. by toggling LEDs on
visual cues to the user about the mode, e.g. by toggling LEDs on
the tablet device. Mode-switching may be software-controlled or
controlled by one or more physical buttons. For example, on a Wacom
Intuos Pro, the button inside the ring may be assigned to switch
Expand All @@ -1005,20 +1037,33 @@
previous mode, the client should immediately issue a
wp_tablet_pad.set_feedback request for each changed button.

If a ring or strip action in the new mode differs from the action
If a ring, strip or dial action in the new mode differs from the action
in the previous mode, the client should immediately issue a
wp_tablet_ring.set_feedback or wp_tablet_strip.set_feedback request
for each changed ring or strip.
wp_tablet_ring.set_feedback, wp_tablet_strip.set_feedback or
wp_tablet_dial.set_feedback request for each changed ring, strip or dial.
</description>
<arg name="time" type="uint" summary="the time of the event with millisecond granularity"/>
<arg name="serial" type="uint"/>
<arg name="mode" type="uint" summary="the new mode of the pad"/>
</event>

<!-- Version 2 additions -->

<event name="dial" since="2">
<description summary="dial announced">
Sent on wp_tablet_pad initialization to announce available dials.
One event is sent for each dial available on this pad group.

This event is sent in the initial burst of events before the
wp_tablet_pad_group.done event.
</description>
<arg name="dial" type="new_id" interface="zwp_tablet_pad_dial_v2"/>
</event>
</interface>

<interface name="zwp_tablet_pad_v2" version="1">
<description summary="a set of buttons, rings and strips">
A pad device is a set of buttons, rings and strips
<interface name="zwp_tablet_pad_v2" version="2">
<description summary="a set of buttons, rings, strips and dials">
A pad device is a set of buttons, rings, strips and dials
usually physically present on the tablet device itself. Some
exceptions exist where the pad device is physically detached, e.g. the
Wacom ExpressKey Remote.
Expand All @@ -1032,7 +1077,7 @@
This initial event sequence is terminated by a wp_tablet_pad.done
event.

All pad features (buttons, rings and strips) are logically divided into
All pad features (buttons, rings, strips and dials) are logically divided into
groups and all pads have at least one group. The available groups are
notified through the wp_tablet_pad.group event; the compositor will
emit one event per group before emitting wp_tablet_pad.done.
Expand Down Expand Up @@ -1175,4 +1220,78 @@
</description>
</event>
</interface>

<interface name="zwp_tablet_pad_dial_v2" version="2">
<description summary="pad dial">
A rotary control, e.g. a dial or a wheel.

Events on a dial are logically grouped by the wl_tablet_pad_dial.frame
event.
</description>

<request name="set_feedback">
<description summary="set compositor feedback">
Requests the compositor to use the provided feedback string
associated with this dial. This request should be issued immediately
after a wp_tablet_pad_group.mode_switch event from the corresponding
group is received, or whenever the dial is mapped to a different
action. See wp_tablet_pad_group.mode_switch for more details.

Clients are encouraged to provide context-aware descriptions for
the actions associated with the dial, and compositors may use this
information to offer visual feedback about the button layout
(eg. on-screen displays).

The provided string 'description' is a UTF-8 encoded string to be
associated with this ring, and is considered user-visible; general
internationalization rules apply.

The serial argument will be that of the last
wp_tablet_pad_group.mode_switch event received for the group of this
dial. Requests providing other serials than the most recent one will be
ignored.
</description>
<arg name="description" type="string" summary="dial description"/>
<arg name="serial" type="uint" summary="serial of the mode switch event"/>
</request>

<request name="destroy" type="destructor">
<description summary="destroy the dial object">
This destroys the client's resource for this dial object.
</description>
</request>

<event name="delta">
<description summary="delta movement">
Sent whenever the position on a dial changes.

This event carries the wheel delta as multiples or fractions
of 120 with each multiple of 120 representing one logical wheel detent.
For example, an axis_value120 of 30 is one quarter of
a logical wheel step in the positive direction, a value120 of
-240 are two logical wheel steps in the negative direction within the
same hardware event. See the wl_pointer.axis_value120 for more details.

The value120 must not be zero.
</description>
<arg name="value120" type="int" summary="rotation distance as fraction of 120"/>
</event>

<event name="frame">
<description summary="end of a dial event sequence">
Indicates the end of a set of events that represent one logical
hardware dial event. A client is expected to accumulate the data
in all events within the frame before proceeding.

All wp_tablet_pad_dial events before a wp_tablet_pad_dial.frame event belong
logically together.

A wp_tablet_pad_dial.frame event is sent for every logical event
group, even if the group only contains a single wp_tablet_pad_dial
event. Specifically, a client may get a sequence: delta, frame,
delta, frame, etc.
</description>
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
</event>
</interface>
</protocol>
2 changes: 1 addition & 1 deletion thirdparty/wayland-protocols/stable/viewporter/README
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ Viewporter: cropping and scaling extension for surface contents
Previously known as wl_scaler.

Maintainers:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Pekka Paalanen <pekka.paalanen@collabora.co.uk> (@pq)

9 changes: 3 additions & 6 deletions thirdparty/wayland-protocols/stable/viewporter/viewporter.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@
src_y, src_width, src_height), and the destination size (dst_width,
dst_height). The contents of the source rectangle are scaled to the
destination size, and content outside the source rectangle is ignored.
This state is double-buffered, and is applied on the next
wl_surface.commit.
This state is double-buffered, see wl_surface.commit.

The two parts of crop and scale state are independent: the source
rectangle, and the destination size. Initially both are unset, that
Expand Down Expand Up @@ -149,8 +148,7 @@
or negative, or x or y are negative, raise the bad_value protocol
error.

The crop and scale state is double-buffered state, and will be
applied on the next wl_surface.commit.
The crop and scale state is double-buffered, see wl_surface.commit.
</description>
<arg name="x" type="fixed" summary="source rectangle x"/>
<arg name="y" type="fixed" summary="source rectangle y"/>
Expand All @@ -169,8 +167,7 @@
contains zero or negative values raises the bad_value protocol
error.

The crop and scale state is double-buffered state, and will be
applied on the next wl_surface.commit.
The crop and scale state is double-buffered, see wl_surface.commit.
</description>
<arg name="width" type="int" summary="surface width"/>
<arg name="height" type="int" summary="surface height"/>
Expand Down
4 changes: 2 additions & 2 deletions thirdparty/wayland-protocols/stable/xdg-shell/README
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
xdg shell protocol

Maintainers:
Jonas Ådahl <jadahl@gmail.com>
Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Jonas Ådahl <jadahl@gmail.com> (@jadahl)
Mike Blumenkrantz <michael.blumenkrantz@gmail.com> (@zmike)
Loading
Loading