Update wayland headers

This commit is contained in:
Milan Nikolic 2024-12-07 12:43:08 +01:00
parent 659b0700ba
commit a9ad86d501
No known key found for this signature in database
GPG key ID: 9229D0EAA3AA4E75
18 changed files with 280 additions and 88 deletions

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2022 Kenny Levinsen * Copyright © 2022 Kenny Levinsen
@ -23,6 +23,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef FRACTIONAL_SCALE_V1_CLIENT_PROTOCOL_H #ifndef FRACTIONAL_SCALE_V1_CLIENT_PROTOCOL_H
#define FRACTIONAL_SCALE_V1_CLIENT_PROTOCOL_H #define FRACTIONAL_SCALE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2015 Samsung Electronics Co., Ltd * Copyright © 2015 Samsung Electronics Co., Ltd
@ -23,6 +23,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H #ifndef IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H #define IDLE_INHIBIT_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2014 Jonas Ådahl * Copyright © 2014 Jonas Ådahl
@ -24,6 +24,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H #ifndef POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H #define POINTER_CONSTRAINTS_UNSTABLE_V1_CLIENT_PROTOCOL_H
@ -512,9 +512,8 @@ zwp_locked_pointer_v1_destroy(struct zwp_locked_pointer_v1 *zwp_locked_pointer_v
* information to warp the pointer upon unlock in order to avoid pointer * information to warp the pointer upon unlock in order to avoid pointer
* jumps. * jumps.
* *
* The cursor position hint is double buffered. The new hint will only take * The cursor position hint is double-buffered state, see
* effect when the associated surface gets it pending state applied. See * wl_surface.commit.
* wl_surface.commit for details.
*/ */
static inline void static inline void
zwp_locked_pointer_v1_set_cursor_position_hint(struct zwp_locked_pointer_v1 *zwp_locked_pointer_v1, wl_fixed_t surface_x, wl_fixed_t surface_y) zwp_locked_pointer_v1_set_cursor_position_hint(struct zwp_locked_pointer_v1 *zwp_locked_pointer_v1, wl_fixed_t surface_x, wl_fixed_t surface_y)
@ -528,9 +527,7 @@ zwp_locked_pointer_v1_set_cursor_position_hint(struct zwp_locked_pointer_v1 *zwp
* *
* Set a new region used to lock the pointer. * Set a new region used to lock the pointer.
* *
* The new lock region is double-buffered. The new lock region will * The new lock region is double-buffered, see wl_surface.commit.
* only take effect when the associated surface gets its pending state
* applied. See wl_surface.commit for details.
* *
* For details about the lock region, see wp_locked_pointer. * For details about the lock region, see wp_locked_pointer.
*/ */
@ -638,9 +635,7 @@ zwp_confined_pointer_v1_destroy(struct zwp_confined_pointer_v1 *zwp_confined_poi
* *
* Set a new region used to confine the pointer. * Set a new region used to confine the pointer.
* *
* The new confine region is double-buffered. The new confine region will * The new confine region is double-buffered, see wl_surface.commit.
* only take effect when the associated surface gets its pending state
* applied. See wl_surface.commit for details.
* *
* If the confinement is active when the new confinement region is applied * If the confinement is active when the new confinement region is applied
* and the pointer ends up outside of newly applied region, the pointer may * and the pointer ends up outside of newly applied region, the pointer may

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2014 Jonas Ådahl * Copyright © 2014 Jonas Ådahl
@ -24,6 +24,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H #ifndef RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H #define RELATIVE_POINTER_UNSTABLE_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2013-2016 Collabora, Ltd. * Copyright © 2013-2016 Collabora, Ltd.
@ -23,6 +23,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef VIEWPORTER_CLIENT_PROTOCOL_H #ifndef VIEWPORTER_CLIENT_PROTOCOL_H
#define VIEWPORTER_CLIENT_PROTOCOL_H #define VIEWPORTER_CLIENT_PROTOCOL_H
@ -86,8 +86,7 @@ extern const struct wl_interface wp_viewporter_interface;
* src_y, src_width, src_height), and the destination size (dst_width, * src_y, src_width, src_height), and the destination size (dst_width,
* dst_height). The contents of the source rectangle are scaled to the * dst_height). The contents of the source rectangle are scaled to the
* destination size, and content outside the source rectangle is ignored. * destination size, and content outside the source rectangle is ignored.
* This state is double-buffered, and is applied on the next * This state is double-buffered, see wl_surface.commit.
* wl_surface.commit.
* *
* The two parts of crop and scale state are independent: the source * The two parts of crop and scale state are independent: the source
* rectangle, and the destination size. Initially both are unset, that * rectangle, and the destination size. Initially both are unset, that
@ -147,8 +146,7 @@ extern const struct wl_interface wp_viewporter_interface;
* src_y, src_width, src_height), and the destination size (dst_width, * src_y, src_width, src_height), and the destination size (dst_width,
* dst_height). The contents of the source rectangle are scaled to the * dst_height). The contents of the source rectangle are scaled to the
* destination size, and content outside the source rectangle is ignored. * destination size, and content outside the source rectangle is ignored.
* This state is double-buffered, and is applied on the next * This state is double-buffered, see wl_surface.commit.
* wl_surface.commit.
* *
* The two parts of crop and scale state are independent: the source * The two parts of crop and scale state are independent: the source
* rectangle, and the destination size. Initially both are unset, that * rectangle, and the destination size. Initially both are unset, that
@ -359,8 +357,7 @@ wp_viewport_destroy(struct wp_viewport *wp_viewport)
* or negative, or x or y are negative, raise the bad_value protocol * or negative, or x or y are negative, raise the bad_value protocol
* error. * error.
* *
* The crop and scale state is double-buffered state, and will be * The crop and scale state is double-buffered, see wl_surface.commit.
* applied on the next wl_surface.commit.
*/ */
static inline void static inline void
wp_viewport_set_source(struct wp_viewport *wp_viewport, wl_fixed_t x, wl_fixed_t y, wl_fixed_t width, wl_fixed_t height) wp_viewport_set_source(struct wp_viewport *wp_viewport, wl_fixed_t x, wl_fixed_t y, wl_fixed_t width, wl_fixed_t height)
@ -381,8 +378,7 @@ wp_viewport_set_source(struct wp_viewport *wp_viewport, wl_fixed_t x, wl_fixed_t
* contains zero or negative values raises the bad_value protocol * contains zero or negative values raises the bad_value protocol
* error. * error.
* *
* The crop and scale state is double-buffered state, and will be * The crop and scale state is double-buffered, see wl_surface.commit.
* applied on the next wl_surface.commit.
*/ */
static inline void static inline void
wp_viewport_set_destination(struct wp_viewport *wp_viewport, int32_t width, int32_t height) wp_viewport_set_destination(struct wp_viewport *wp_viewport, int32_t width, int32_t height)

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2008-2011 Kristian Høgsberg * Copyright © 2008-2011 Kristian Høgsberg
@ -27,6 +27,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"
@ -154,6 +155,7 @@ static const struct wl_interface *wayland_types[] = {
&wl_surface_interface, &wl_surface_interface,
&wl_surface_interface, &wl_surface_interface,
&wl_surface_interface, &wl_surface_interface,
&wl_registry_interface,
}; };
static const struct wl_message wl_display_requests[] = { static const struct wl_message wl_display_requests[] = {
@ -397,7 +399,7 @@ static const struct wl_message wl_seat_events[] = {
}; };
WL_PRIVATE const struct wl_interface wl_seat_interface = { WL_PRIVATE const struct wl_interface wl_seat_interface = {
"wl_seat", 9, "wl_seat", 10,
4, wl_seat_requests, 4, wl_seat_requests,
2, wl_seat_events, 2, wl_seat_events,
}; };
@ -422,7 +424,7 @@ static const struct wl_message wl_pointer_events[] = {
}; };
WL_PRIVATE const struct wl_interface wl_pointer_interface = { WL_PRIVATE const struct wl_interface wl_pointer_interface = {
"wl_pointer", 9, "wl_pointer", 10,
2, wl_pointer_requests, 2, wl_pointer_requests,
11, wl_pointer_events, 11, wl_pointer_events,
}; };
@ -441,7 +443,7 @@ static const struct wl_message wl_keyboard_events[] = {
}; };
WL_PRIVATE const struct wl_interface wl_keyboard_interface = { WL_PRIVATE const struct wl_interface wl_keyboard_interface = {
"wl_keyboard", 9, "wl_keyboard", 10,
1, wl_keyboard_requests, 1, wl_keyboard_requests,
6, wl_keyboard_events, 6, wl_keyboard_events,
}; };
@ -461,7 +463,7 @@ static const struct wl_message wl_touch_events[] = {
}; };
WL_PRIVATE const struct wl_interface wl_touch_interface = { WL_PRIVATE const struct wl_interface wl_touch_interface = {
"wl_touch", 9, "wl_touch", 10,
1, wl_touch_requests, 1, wl_touch_requests,
7, wl_touch_events, 7, wl_touch_events,
}; };
@ -523,3 +525,14 @@ WL_PRIVATE const struct wl_interface wl_subsurface_interface = {
0, NULL, 0, NULL,
}; };
static const struct wl_message wl_fixes_requests[] = {
{ "destroy", "", wayland_types + 0 },
{ "destroy_registry", "o", wayland_types + 95 },
};
WL_PRIVATE const struct wl_interface wl_fixes_interface = {
"wl_fixes", 1,
2, wl_fixes_requests,
0, NULL,
};

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef WAYLAND_CLIENT_PROTOCOL_H #ifndef WAYLAND_CLIENT_PROTOCOL_H
#define WAYLAND_CLIENT_PROTOCOL_H #define WAYLAND_CLIENT_PROTOCOL_H
@ -36,6 +36,7 @@ extern "C" {
* - @subpage page_iface_wl_region - region interface * - @subpage page_iface_wl_region - region interface
* - @subpage page_iface_wl_subcompositor - sub-surface compositing * - @subpage page_iface_wl_subcompositor - sub-surface compositing
* - @subpage page_iface_wl_subsurface - sub-surface interface to a wl_surface * - @subpage page_iface_wl_subsurface - sub-surface interface to a wl_surface
* - @subpage page_iface_wl_fixes - wayland protocol fixes
* @section page_copyright_wayland Copyright * @section page_copyright_wayland Copyright
* <pre> * <pre>
* *
@ -73,6 +74,7 @@ struct wl_data_device_manager;
struct wl_data_offer; struct wl_data_offer;
struct wl_data_source; struct wl_data_source;
struct wl_display; struct wl_display;
struct wl_fixes;
struct wl_keyboard; struct wl_keyboard;
struct wl_output; struct wl_output;
struct wl_pointer; struct wl_pointer;
@ -283,8 +285,10 @@ extern const struct wl_interface wl_shm_interface;
* client provides and updates the contents is defined by the buffer factory * client provides and updates the contents is defined by the buffer factory
* interface. * interface.
* *
* If the buffer uses a format that has an alpha channel, the alpha channel * Color channels are assumed to be electrical rather than optical (in other
* is assumed to be premultiplied in the electrical color channel values * words, encoded with a transfer function) unless otherwise specified. If
* the buffer uses a format that has an alpha channel, the alpha channel is
* assumed to be premultiplied into the electrical color channel values
* (after transfer function encoding) unless otherwise specified. * (after transfer function encoding) unless otherwise specified.
* *
* Note, because wl_buffer objects are created from multiple independent * Note, because wl_buffer objects are created from multiple independent
@ -302,8 +306,10 @@ extern const struct wl_interface wl_shm_interface;
* client provides and updates the contents is defined by the buffer factory * client provides and updates the contents is defined by the buffer factory
* interface. * interface.
* *
* If the buffer uses a format that has an alpha channel, the alpha channel * Color channels are assumed to be electrical rather than optical (in other
* is assumed to be premultiplied in the electrical color channel values * words, encoded with a transfer function) unless otherwise specified. If
* the buffer uses a format that has an alpha channel, the alpha channel is
* assumed to be premultiplied into the electrical color channel values
* (after transfer function encoding) unless otherwise specified. * (after transfer function encoding) unless otherwise specified.
* *
* Note, because wl_buffer objects are created from multiple independent * Note, because wl_buffer objects are created from multiple independent
@ -652,6 +658,16 @@ extern const struct wl_interface wl_pointer_interface;
* *
* The wl_keyboard interface represents one or more keyboards * The wl_keyboard interface represents one or more keyboards
* associated with a seat. * associated with a seat.
*
* Each wl_keyboard has the following logical state:
*
* - an active surface (possibly null),
* - the keys currently logically down,
* - the active modifiers,
* - the active group.
*
* By default, the active surface is null, the keys currently logically down
* are empty, the active modifiers and the active group are 0.
* @section page_iface_wl_keyboard_api API * @section page_iface_wl_keyboard_api API
* See @ref iface_wl_keyboard. * See @ref iface_wl_keyboard.
*/ */
@ -660,6 +676,16 @@ extern const struct wl_interface wl_pointer_interface;
* *
* The wl_keyboard interface represents one or more keyboards * The wl_keyboard interface represents one or more keyboards
* associated with a seat. * associated with a seat.
*
* Each wl_keyboard has the following logical state:
*
* - an active surface (possibly null),
* - the keys currently logically down,
* - the active modifiers,
* - the active group.
*
* By default, the active surface is null, the keys currently logically down
* are empty, the active modifiers and the active group are 0.
*/ */
extern const struct wl_interface wl_keyboard_interface; extern const struct wl_interface wl_keyboard_interface;
#endif #endif
@ -916,6 +942,25 @@ extern const struct wl_interface wl_subcompositor_interface;
*/ */
extern const struct wl_interface wl_subsurface_interface; extern const struct wl_interface wl_subsurface_interface;
#endif #endif
#ifndef WL_FIXES_INTERFACE
#define WL_FIXES_INTERFACE
/**
* @page page_iface_wl_fixes wl_fixes
* @section page_iface_wl_fixes_desc Description
*
* This global fixes problems with other core-protocol interfaces that
* cannot be fixed in these interfaces themselves.
* @section page_iface_wl_fixes_api API
* See @ref iface_wl_fixes.
*/
/**
* @defgroup iface_wl_fixes The wl_fixes interface
*
* This global fixes problems with other core-protocol interfaces that
* cannot be fixed in these interfaces themselves.
*/
extern const struct wl_interface wl_fixes_interface;
#endif
#ifndef WL_DISPLAY_ERROR_ENUM #ifndef WL_DISPLAY_ERROR_ENUM
#define WL_DISPLAY_ERROR_ENUM #define WL_DISPLAY_ERROR_ENUM
@ -1050,7 +1095,7 @@ wl_display_get_version(struct wl_display *wl_display)
* compositor after the callback is fired and as such the client must not * compositor after the callback is fired and as such the client must not
* attempt to use it after that point. * attempt to use it after that point.
* *
* The callback_data passed in the callback is the event serial. * The callback_data passed in the callback is undefined and should be ignored.
*/ */
static inline struct wl_callback * static inline struct wl_callback *
wl_display_sync(struct wl_display *wl_display) wl_display_sync(struct wl_display *wl_display)
@ -3715,10 +3760,9 @@ struct wl_surface_listener {
* Before receiving this event the preferred buffer transform for * Before receiving this event the preferred buffer transform for
* this surface is normal. * this surface is normal.
* *
* It is intended that transform aware clients use this event to * Applying this transformation to the surface buffer contents and
* apply the transform to their content and use * using wl_surface.set_buffer_transform might allow the compositor
* wl_surface.set_buffer_transform to indicate the transform they * to use the surface buffer more efficiently.
* have rendered with.
* @param transform preferred transform * @param transform preferred transform
* @since 6 * @since 6
*/ */
@ -3902,9 +3946,15 @@ wl_surface_destroy(struct wl_surface *wl_surface)
* mutates the underlying buffer storage, the surface contents become * mutates the underlying buffer storage, the surface contents become
* undefined immediately. * undefined immediately.
* *
* If wl_surface.attach is sent with a NULL wl_buffer, or the pending * If wl_surface.attach is sent with a NULL wl_buffer, the
* wl_buffer has been destroyed, the following wl_surface.commit will * following wl_surface.commit will remove the surface content.
* remove the surface content. *
* If a pending wl_buffer has been destroyed, the result is not specified.
* Many compositors are known to remove the surface content on the following
* wl_surface.commit, but this behaviour is not universal. Clients seeking to
* maximise compatibility should not destroy pending buffers and should
* ensure that they explicitly remove content from surfaces, even after
* destroying buffers.
*/ */
static inline void static inline void
wl_surface_attach(struct wl_surface *wl_surface, struct wl_buffer *buffer, int32_t x, int32_t y) wl_surface_attach(struct wl_surface *wl_surface, struct wl_buffer *buffer, int32_t x, int32_t y)
@ -4065,16 +4115,18 @@ wl_surface_set_input_region(struct wl_surface *wl_surface, struct wl_region *reg
* *
* Surface state (input, opaque, and damage regions, attached buffers, * Surface state (input, opaque, and damage regions, attached buffers,
* etc.) is double-buffered. Protocol requests modify the pending state, * etc.) is double-buffered. Protocol requests modify the pending state,
* as opposed to the current state in use by the compositor. A commit * as opposed to the active state in use by the compositor.
* request atomically applies all pending state, replacing the current
* state. After commit, the new pending state is as documented for each
* related request.
* *
* On commit, a pending wl_buffer is applied first, and all other state * A commit request atomically creates a content update from the pending
* second. This means that all coordinates in double-buffered state are * state, even if the pending state has not been touched. The content
* relative to the new wl_buffer coming into use, except for * update is placed in a queue until it becomes active. After commit, the
* wl_surface.attach itself. If there is no pending wl_buffer, the * new pending state is as documented for each related request.
* coordinates are relative to the current surface contents. *
* When the content update is applied, the wl_buffer is applied before all
* other state. This means that all coordinates in double-buffered state
* are relative to the newly attached wl_buffers, except for
* wl_surface.attach itself. If there is no newly attached wl_buffer, the
* coordinates are relative to the previous content update.
* *
* All requests that need a commit to become effective are documented * All requests that need a commit to become effective are documented
* to affect double-buffered state. * to affect double-buffered state.
@ -4091,10 +4143,12 @@ wl_surface_commit(struct wl_surface *wl_surface)
/** /**
* @ingroup iface_wl_surface * @ingroup iface_wl_surface
* *
* This request sets an optional transformation on how the compositor * This request sets the transformation that the client has already applied
* interprets the contents of the buffer attached to the surface. The * to the content of the buffer. The accepted values for the transform
* accepted values for the transform parameter are the values for * parameter are the values for wl_output.transform.
* wl_output.transform. *
* The compositor applies the inverse of this transformation whenever it
* uses the buffer contents.
* *
* Buffer transform is double-buffered state, see wl_surface.commit. * Buffer transform is double-buffered state, see wl_surface.commit.
* *
@ -4214,6 +4268,9 @@ wl_surface_damage_buffer(struct wl_surface *wl_surface, int32_t x, int32_t y, in
* x and y, combined with the new surface size define in which * x and y, combined with the new surface size define in which
* directions the surface's size changes. * directions the surface's size changes.
* *
* The exact semantics of wl_surface.offset are role-specific. Refer to
* the documentation of specific roles for more information.
*
* Surface location offset is double-buffered state, see * Surface location offset is double-buffered state, see
* wl_surface.commit. * wl_surface.commit.
* *
@ -4855,6 +4912,7 @@ struct wl_pointer_listener {
* @param axis axis type * @param axis axis type
* @param discrete number of steps * @param discrete number of steps
* @since 5 * @since 5
* @deprecated Deprecated since version 8
*/ */
void (*axis_discrete)(void *data, void (*axis_discrete)(void *data,
struct wl_pointer *wl_pointer, struct wl_pointer *wl_pointer,
@ -5123,6 +5181,14 @@ enum wl_keyboard_keymap_format {
* physical key state * physical key state
* *
* Describes the physical state of a key that produced the key event. * Describes the physical state of a key that produced the key event.
*
* Since version 10, the key can be in a "repeated" pseudo-state which
* means the same as "pressed", but is used to signal repetition in the
* key event.
*
* The key may only enter the repeated state after entering the pressed
* state and before entering the released state. This event may be
* generated multiple times while the key is down.
*/ */
enum wl_keyboard_key_state { enum wl_keyboard_key_state {
/** /**
@ -5133,7 +5199,16 @@ enum wl_keyboard_key_state {
* key is pressed * key is pressed
*/ */
WL_KEYBOARD_KEY_STATE_PRESSED = 1, WL_KEYBOARD_KEY_STATE_PRESSED = 1,
/**
* key was repeated
* @since 10
*/
WL_KEYBOARD_KEY_STATE_REPEATED = 2,
}; };
/**
* @ingroup iface_wl_keyboard
*/
#define WL_KEYBOARD_KEY_STATE_REPEATED_SINCE_VERSION 10
#endif /* WL_KEYBOARD_KEY_STATE_ENUM */ #endif /* WL_KEYBOARD_KEY_STATE_ENUM */
/** /**
@ -5167,9 +5242,18 @@ struct wl_keyboard_listener {
* *
* The compositor must send the wl_keyboard.modifiers event after * The compositor must send the wl_keyboard.modifiers event after
* this event. * this event.
*
* In the wl_keyboard logical state, this event sets the active
* surface to the surface argument and the keys currently logically
* down to the keys in the keys argument. The compositor must not
* send this event if the wl_keyboard already had an active surface
* immediately before this event.
*
* Clients should not use the list of pressed keys to emulate
* key-press events. The order of keys in the list is unspecified.
* @param serial serial number of the enter event * @param serial serial number of the enter event
* @param surface surface gaining keyboard focus * @param surface surface gaining keyboard focus
* @param keys the currently pressed keys * @param keys the keys currently logically down
*/ */
void (*enter)(void *data, void (*enter)(void *data,
struct wl_keyboard *wl_keyboard, struct wl_keyboard *wl_keyboard,
@ -5185,10 +5269,10 @@ struct wl_keyboard_listener {
* The leave notification is sent before the enter notification for * The leave notification is sent before the enter notification for
* the new focus. * the new focus.
* *
* After this event client must assume that no keys are pressed, it * In the wl_keyboard logical state, this event resets all values
* must stop key repeating if there's some going on and until it * to their defaults. The compositor must not send this event if
* receives the next wl_keyboard.modifiers event, the client must * the active surface of the wl_keyboard was not equal to the
* also assume no modifiers are active. * surface argument immediately before this event.
* @param serial serial number of the leave event * @param serial serial number of the leave event
* @param surface surface that lost keyboard focus * @param surface surface that lost keyboard focus
*/ */
@ -5208,8 +5292,20 @@ struct wl_keyboard_listener {
* If this event produces a change in modifiers, then the resulting * If this event produces a change in modifiers, then the resulting
* wl_keyboard.modifiers event must be sent after this event. * wl_keyboard.modifiers event must be sent after this event.
* *
* The compositor must not send this event without a surface of the * In the wl_keyboard logical state, this event adds the key to the
* client having keyboard focus. * keys currently logically down (if the state argument is pressed)
* or removes the key from the keys currently logically down (if
* the state argument is released). The compositor must not send
* this event if the wl_keyboard did not have an active surface
* immediately before this event. The compositor must not send this
* event if state is pressed (resp. released) and the key was
* already logically down (resp. was not logically down)
* immediately before this event.
*
* Since version 10, compositors may send key events with the
* "repeated" key state when a wl_keyboard.repeat_info event with a
* rate argument of 0 has been received. This allows the compositor
* to take over the responsibility of key repetition.
* @param serial serial number of the key event * @param serial serial number of the key event
* @param time timestamp with millisecond granularity * @param time timestamp with millisecond granularity
* @param key key that produced the event * @param key key that produced the event
@ -5235,6 +5331,9 @@ struct wl_keyboard_listener {
* the next wl_keyboard.modifiers event. In order to reset the * the next wl_keyboard.modifiers event. In order to reset the
* modifier state again, the compositor can send a * modifier state again, the compositor can send a
* wl_keyboard.modifiers event with no pressed modifiers. * wl_keyboard.modifiers event with no pressed modifiers.
*
* In the wl_keyboard logical state, this event updates the
* modifiers and group.
* @param serial serial number of the modifiers event * @param serial serial number of the modifiers event
* @param mods_depressed depressed modifiers * @param mods_depressed depressed modifiers
* @param mods_latched latched modifiers * @param mods_latched latched modifiers
@ -5434,6 +5533,8 @@ struct wl_touch_listener {
* points currently active on this client's surface. The client is * points currently active on this client's surface. The client is
* responsible for finalizing the touch points, future touch points * responsible for finalizing the touch points, future touch points
* on this surface may reuse the touch point ID. * on this surface may reuse the touch point ID.
*
* No frame event is required after the cancel event.
*/ */
void (*cancel)(void *data, void (*cancel)(void *data,
struct wl_touch *wl_touch); struct wl_touch *wl_touch);
@ -5637,11 +5738,10 @@ enum wl_output_subpixel {
#define WL_OUTPUT_TRANSFORM_ENUM #define WL_OUTPUT_TRANSFORM_ENUM
/** /**
* @ingroup iface_wl_output * @ingroup iface_wl_output
* transform from framebuffer to output * transformation applied to buffer contents
* *
* This describes the transform that a compositor will apply to a * This describes transformations that clients and compositors apply to
* surface to compensate for the rotation or mirroring of an * buffer contents.
* output device.
* *
* The flipped values correspond to an initial flip around a * The flipped values correspond to an initial flip around a
* vertical axis followed by rotation. * vertical axis followed by rotation.
@ -5744,7 +5844,7 @@ struct wl_output_listener {
* @param subpixel subpixel orientation of the output * @param subpixel subpixel orientation of the output
* @param make textual description of the manufacturer * @param make textual description of the manufacturer
* @param model textual description of the model * @param model textual description of the model
* @param transform transform that maps framebuffer to output * @param transform additional transformation applied to buffer contents during presentation
*/ */
void (*geometry)(void *data, void (*geometry)(void *data,
struct wl_output *wl_output, struct wl_output *wl_output,
@ -6352,6 +6452,69 @@ wl_subsurface_set_desync(struct wl_subsurface *wl_subsurface)
WL_SUBSURFACE_SET_DESYNC, NULL, wl_proxy_get_version((struct wl_proxy *) wl_subsurface), 0); WL_SUBSURFACE_SET_DESYNC, NULL, wl_proxy_get_version((struct wl_proxy *) wl_subsurface), 0);
} }
#define WL_FIXES_DESTROY 0
#define WL_FIXES_DESTROY_REGISTRY 1
/**
* @ingroup iface_wl_fixes
*/
#define WL_FIXES_DESTROY_SINCE_VERSION 1
/**
* @ingroup iface_wl_fixes
*/
#define WL_FIXES_DESTROY_REGISTRY_SINCE_VERSION 1
/** @ingroup iface_wl_fixes */
static inline void
wl_fixes_set_user_data(struct wl_fixes *wl_fixes, void *user_data)
{
wl_proxy_set_user_data((struct wl_proxy *) wl_fixes, user_data);
}
/** @ingroup iface_wl_fixes */
static inline void *
wl_fixes_get_user_data(struct wl_fixes *wl_fixes)
{
return wl_proxy_get_user_data((struct wl_proxy *) wl_fixes);
}
static inline uint32_t
wl_fixes_get_version(struct wl_fixes *wl_fixes)
{
return wl_proxy_get_version((struct wl_proxy *) wl_fixes);
}
/**
* @ingroup iface_wl_fixes
*/
static inline void
wl_fixes_destroy(struct wl_fixes *wl_fixes)
{
wl_proxy_marshal_flags((struct wl_proxy *) wl_fixes,
WL_FIXES_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) wl_fixes), WL_MARSHAL_FLAG_DESTROY);
}
/**
* @ingroup iface_wl_fixes
*
* This request destroys a wl_registry object.
*
* The client should no longer use the wl_registry after making this
* request.
*
* The compositor will emit a wl_display.delete_id event with the object ID
* of the registry and will no longer emit any events on the registry. The
* client should re-use the object ID once it receives the
* wl_display.delete_id event.
*/
static inline void
wl_fixes_destroy_registry(struct wl_fixes *wl_fixes, struct wl_registry *registry)
{
wl_proxy_marshal_flags((struct wl_proxy *) wl_fixes,
WL_FIXES_DESTROY_REGISTRY, NULL, wl_proxy_get_version((struct wl_proxy *) wl_fixes), 0, registry);
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2020 Aleix Pol Gonzalez <aleixpol@kde.org> * Copyright © 2020 Aleix Pol Gonzalez <aleixpol@kde.org>
@ -24,6 +24,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef XDG_ACTIVATION_V1_CLIENT_PROTOCOL_H #ifndef XDG_ACTIVATION_V1_CLIENT_PROTOCOL_H
#define XDG_ACTIVATION_V1_CLIENT_PROTOCOL_H #define XDG_ACTIVATION_V1_CLIENT_PROTOCOL_H

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2018 Simon Ser * Copyright © 2018 Simon Ser
@ -23,6 +23,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H #ifndef XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H
#define XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H #define XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H
@ -215,6 +215,10 @@ enum zxdg_toplevel_decoration_v1_error {
* xdg_toplevel destroyed before the decoration object * xdg_toplevel destroyed before the decoration object
*/ */
ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ORPHANED = 2, ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ORPHANED = 2,
/**
* invalid mode
*/
ZXDG_TOPLEVEL_DECORATION_V1_ERROR_INVALID_MODE = 3,
}; };
#endif /* ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ENUM */ #endif /* ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ENUM */
@ -347,6 +351,9 @@ zxdg_toplevel_decoration_v1_destroy(struct zxdg_toplevel_decoration_v1 *zxdg_top
* Such clients are responsible for preventing configure loops and must * Such clients are responsible for preventing configure loops and must
* make sure not to send multiple successive set_mode requests with the * make sure not to send multiple successive set_mode requests with the
* same decoration mode. * same decoration mode.
*
* If an invalid mode is supplied by the client, the invalid_mode protocol
* error is raised by the compositor.
*/ */
static inline void static inline void
zxdg_toplevel_decoration_v1_set_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, uint32_t mode) zxdg_toplevel_decoration_v1_set_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, uint32_t mode)

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
/* /*
* Copyright © 2008-2013 Kristian Høgsberg * Copyright © 2008-2013 Kristian Høgsberg
@ -28,6 +28,7 @@
* DEALINGS IN THE SOFTWARE. * DEALINGS IN THE SOFTWARE.
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdint.h> #include <stdint.h>
#include "wayland-util.h" #include "wayland-util.h"

View file

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.22.0 */ /* Generated by wayland-scanner 1.23.1 */
#ifndef XDG_SHELL_CLIENT_PROTOCOL_H #ifndef XDG_SHELL_CLIENT_PROTOCOL_H
#define XDG_SHELL_CLIENT_PROTOCOL_H #define XDG_SHELL_CLIENT_PROTOCOL_H
@ -167,7 +167,8 @@ extern const struct wl_interface xdg_positioner_interface;
* manipulate a buffer prior to the first xdg_surface.configure call must * manipulate a buffer prior to the first xdg_surface.configure call must
* also be treated as errors. * also be treated as errors.
* *
* After creating a role-specific object and setting it up, the client must * After creating a role-specific object and setting it up (e.g. by sending
* the title, app ID, size constraints, parent, etc), the client must
* perform an initial commit without any buffer attached. The compositor * perform an initial commit without any buffer attached. The compositor
* will reply with initial wl_surface state such as * will reply with initial wl_surface state such as
* wl_surface.preferred_buffer_scale followed by an xdg_surface.configure * wl_surface.preferred_buffer_scale followed by an xdg_surface.configure
@ -220,7 +221,8 @@ extern const struct wl_interface xdg_positioner_interface;
* manipulate a buffer prior to the first xdg_surface.configure call must * manipulate a buffer prior to the first xdg_surface.configure call must
* also be treated as errors. * also be treated as errors.
* *
* After creating a role-specific object and setting it up, the client must * After creating a role-specific object and setting it up (e.g. by sending
* the title, app ID, size constraints, parent, etc), the client must
* perform an initial commit without any buffer attached. The compositor * perform an initial commit without any buffer attached. The compositor
* will reply with initial wl_surface state such as * will reply with initial wl_surface state such as
* wl_surface.preferred_buffer_scale followed by an xdg_surface.configure * wl_surface.preferred_buffer_scale followed by an xdg_surface.configure
@ -267,7 +269,7 @@ extern const struct wl_interface xdg_surface_interface;
* attributes (e.g. title, state, stacking, ...) are discarded for * attributes (e.g. title, state, stacking, ...) are discarded for
* an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to * an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to
* the state it had right after xdg_surface.get_toplevel. The client * the state it had right after xdg_surface.get_toplevel. The client
* can re-map the toplevel by perfoming a commit without any buffer * can re-map the toplevel by performing a commit without any buffer
* attached, waiting for a configure event and handling it as usual (see * attached, waiting for a configure event and handling it as usual (see
* xdg_surface description). * xdg_surface description).
* *
@ -294,7 +296,7 @@ extern const struct wl_interface xdg_surface_interface;
* attributes (e.g. title, state, stacking, ...) are discarded for * attributes (e.g. title, state, stacking, ...) are discarded for
* an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to * an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to
* the state it had right after xdg_surface.get_toplevel. The client * the state it had right after xdg_surface.get_toplevel. The client
* can re-map the toplevel by perfoming a commit without any buffer * can re-map the toplevel by performing a commit without any buffer
* attached, waiting for a configure event and handling it as usual (see * attached, waiting for a configure event and handling it as usual (see
* xdg_surface description). * xdg_surface description).
* *
@ -1156,8 +1158,7 @@ xdg_surface_get_popup(struct xdg_surface *xdg_surface, struct xdg_surface *paren
* portions like drop-shadows which should be ignored for the * portions like drop-shadows which should be ignored for the
* purposes of aligning, placing and constraining windows. * purposes of aligning, placing and constraining windows.
* *
* The window geometry is double buffered, and will be applied at the * The window geometry is double-buffered state, see wl_surface.commit.
* time wl_surface.commit of the corresponding wl_surface is called.
* *
* When maintaining a position, the compositor should treat the (x, y) * When maintaining a position, the compositor should treat the (x, y)
* coordinate of the window geometry as the top left corner of the window. * coordinate of the window geometry as the top left corner of the window.
@ -1291,8 +1292,7 @@ enum xdg_toplevel_resize_edge {
* configure event to ensure that both the client and the compositor * configure event to ensure that both the client and the compositor
* setting the state can be synchronized. * setting the state can be synchronized.
* *
* States set in this way are double-buffered. They will get applied on * States set in this way are double-buffered, see wl_surface.commit.
* the next commit.
*/ */
enum xdg_toplevel_state { enum xdg_toplevel_state {
/** /**
@ -1342,6 +1342,9 @@ enum xdg_toplevel_state {
* *
* The window is currently in a tiled layout and the left edge is * The window is currently in a tiled layout and the left edge is
* considered to be adjacent to another part of the tiling grid. * considered to be adjacent to another part of the tiling grid.
*
* The client should draw without shadow or other decoration
* outside of the window geometry on the left edge.
* @since 2 * @since 2
*/ */
XDG_TOPLEVEL_STATE_TILED_LEFT = 5, XDG_TOPLEVEL_STATE_TILED_LEFT = 5,
@ -1350,6 +1353,9 @@ enum xdg_toplevel_state {
* *
* The window is currently in a tiled layout and the right edge * The window is currently in a tiled layout and the right edge
* is considered to be adjacent to another part of the tiling grid. * is considered to be adjacent to another part of the tiling grid.
*
* The client should draw without shadow or other decoration
* outside of the window geometry on the right edge.
* @since 2 * @since 2
*/ */
XDG_TOPLEVEL_STATE_TILED_RIGHT = 6, XDG_TOPLEVEL_STATE_TILED_RIGHT = 6,
@ -1358,6 +1364,9 @@ enum xdg_toplevel_state {
* *
* The window is currently in a tiled layout and the top edge is * The window is currently in a tiled layout and the top edge is
* considered to be adjacent to another part of the tiling grid. * considered to be adjacent to another part of the tiling grid.
*
* The client should draw without shadow or other decoration
* outside of the window geometry on the top edge.
* @since 2 * @since 2
*/ */
XDG_TOPLEVEL_STATE_TILED_TOP = 7, XDG_TOPLEVEL_STATE_TILED_TOP = 7,
@ -1366,6 +1375,9 @@ enum xdg_toplevel_state {
* *
* The window is currently in a tiled layout and the bottom edge * The window is currently in a tiled layout and the bottom edge
* is considered to be adjacent to another part of the tiling grid. * is considered to be adjacent to another part of the tiling grid.
*
* The client should draw without shadow or other decoration
* outside of the window geometry on the bottom edge.
* @since 2 * @since 2
*/ */
XDG_TOPLEVEL_STATE_TILED_BOTTOM = 8, XDG_TOPLEVEL_STATE_TILED_BOTTOM = 8,
@ -1848,8 +1860,7 @@ xdg_toplevel_resize(struct xdg_toplevel *xdg_toplevel, struct wl_seat *seat, uin
* The width and height arguments are in window geometry coordinates. * The width and height arguments are in window geometry coordinates.
* See xdg_surface.set_window_geometry. * See xdg_surface.set_window_geometry.
* *
* Values set in this way are double-buffered. They will get applied * Values set in this way are double-buffered, see wl_surface.commit.
* on the next commit.
* *
* The compositor can use this information to allow or disallow * The compositor can use this information to allow or disallow
* different states like maximize or fullscreen and draw accurate * different states like maximize or fullscreen and draw accurate
@ -1893,8 +1904,7 @@ xdg_toplevel_set_max_size(struct xdg_toplevel *xdg_toplevel, int32_t width, int3
* The width and height arguments are in window geometry coordinates. * The width and height arguments are in window geometry coordinates.
* See xdg_surface.set_window_geometry. * See xdg_surface.set_window_geometry.
* *
* Values set in this way are double-buffered. They will get applied * Values set in this way are double-buffered, see wl_surface.commit.
* on the next commit.
* *
* The compositor can use this information to allow or disallow * The compositor can use this information to allow or disallow
* different states like maximize or fullscreen and draw accurate * different states like maximize or fullscreen and draw accurate