cursor-shape: add support for server side cursor shapes

This implements support for the new cursor-shape-v1 protocol. When
available, we use it, instead of client-side cursor surfaces, to
select the xcursor shape.

Note that we still need to keep client side pointers, for:

* backward compatibility
* to be able to "hide" the cursor

Closes #1379
This commit is contained in:
Daniel Eklöf 2023-06-27 17:25:57 +02:00
parent ee794a121e
commit c8e13ad393
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
8 changed files with 280 additions and 20 deletions

View file

@ -1,10 +1,14 @@
#pragma once
#if defined(HAVE_CURSOR_SHAPE)
#include <cursor-shape-v1.h>
#endif
enum cursor_shape {
CURSOR_SHAPE_NONE,
CURSOR_SHAPE_CUSTOM,
CURSOR_SHAPE_HIDDEN,
CURSOR_SHAPE_LEFT_PTR,
CURSOR_SHAPE_TEXT,
CURSOR_SHAPE_TEXT_FALLBACK,
@ -16,6 +20,13 @@ enum cursor_shape {
CURSOR_SHAPE_RIGHT_SIDE,
CURSOR_SHAPE_TOP_SIDE,
CURSOR_SHAPE_BOTTOM_SIDE,
CURSOR_SHAPE_COUNT,
};
const char *cursor_shape_to_string(enum cursor_shape shape);
#if defined(HAVE_CURSOR_SHAPE)
enum wp_cursor_shape_device_v1_shape cursor_shape_to_server_shape(
enum cursor_shape shape);
#endif