diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/backend/drm/drm.h | 2 | ||||
-rw-r--r-- | include/backend/headless.h | 3 | ||||
-rw-r--r-- | include/backend/libinput.h | 1 | ||||
-rw-r--r-- | include/backend/wayland.h | 2 | ||||
-rw-r--r-- | include/backend/x11.h | 6 | ||||
-rw-r--r-- | include/wlr/backend/multi.h | 3 | ||||
-rw-r--r-- | include/wlr/types/wlr_export_dmabuf_v1.h | 3 | ||||
-rw-r--r-- | include/wlr/types/wlr_keyboard.h | 2 | ||||
-rw-r--r-- | include/wlr/types/wlr_output.h | 9 | ||||
-rw-r--r-- | include/wlr/types/wlr_screencopy_v1.h | 3 | ||||
-rw-r--r-- | include/wlr/xwayland.h | 1 |
11 files changed, 32 insertions, 3 deletions
diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h index 6fe031e2..ac23cd9a 100644 --- a/include/backend/drm/drm.h +++ b/include/backend/drm/drm.h @@ -138,6 +138,8 @@ struct wlr_drm_connector { struct wl_list link; }; +struct wlr_drm_backend *get_drm_backend_from_backend( + struct wlr_backend *wlr_backend); bool check_drm_features(struct wlr_drm_backend *drm); bool init_drm_resources(struct wlr_drm_backend *drm); void finish_drm_resources(struct wlr_drm_backend *drm); diff --git a/include/backend/headless.h b/include/backend/headless.h index add4c4e8..35280862 100644 --- a/include/backend/headless.h +++ b/include/backend/headless.h @@ -34,4 +34,7 @@ struct wlr_headless_input_device { struct wlr_headless_backend *backend; }; +struct wlr_headless_backend *headless_backend_from_backend( + struct wlr_backend *wlr_backend); + #endif diff --git a/include/backend/libinput.h b/include/backend/libinput.h index d1fb3a44..9531091f 100644 --- a/include/backend/libinput.h +++ b/include/backend/libinput.h @@ -4,6 +4,7 @@ #include <libinput.h> #include <wayland-server-core.h> #include <wlr/backend/interface.h> +#include <wlr/backend/libinput.h> #include <wlr/interfaces/wlr_input_device.h> #include <wlr/types/wlr_input_device.h> #include <wlr/types/wlr_list.h> diff --git a/include/backend/wayland.h b/include/backend/wayland.h index 46f18c84..47585d9e 100644 --- a/include/backend/wayland.h +++ b/include/backend/wayland.h @@ -78,6 +78,8 @@ struct wlr_wl_pointer { struct wl_listener output_destroy; }; +struct wlr_wl_backend *get_wl_backend_from_backend( + struct wlr_backend *wlr_backend); void poll_wl_registry(struct wlr_wl_backend *backend); void update_wl_output_cursor(struct wlr_wl_output *output); struct wlr_wl_pointer *pointer_get_wl(struct wlr_pointer *wlr_pointer); diff --git a/include/backend/x11.h b/include/backend/x11.h index f5557343..38aaad50 100644 --- a/include/backend/x11.h +++ b/include/backend/x11.h @@ -72,8 +72,10 @@ struct wlr_x11_backend { struct wl_listener display_destroy; }; -struct wlr_x11_output *get_x11_output_from_window_id(struct wlr_x11_backend *x11, - xcb_window_t window); +struct wlr_x11_backend *get_x11_backend_from_backend( + struct wlr_backend *wlr_backend); +struct wlr_x11_output *get_x11_output_from_window_id( + struct wlr_x11_backend *x11, xcb_window_t window); extern const struct wlr_keyboard_impl keyboard_impl; extern const struct wlr_pointer_impl pointer_impl; diff --git a/include/wlr/backend/multi.h b/include/wlr/backend/multi.h index 7137b075..ef908d26 100644 --- a/include/wlr/backend/multi.h +++ b/include/wlr/backend/multi.h @@ -31,4 +31,7 @@ bool wlr_backend_is_multi(struct wlr_backend *backend); struct wlr_session *wlr_multi_get_session(struct wlr_backend *base); bool wlr_multi_is_empty(struct wlr_backend *backend); +void wlr_multi_for_each_backend(struct wlr_backend *backend, + void (*callback)(struct wlr_backend *backend, void *data), void *data); + #endif diff --git a/include/wlr/types/wlr_export_dmabuf_v1.h b/include/wlr/types/wlr_export_dmabuf_v1.h index 56767540..8669574d 100644 --- a/include/wlr/types/wlr_export_dmabuf_v1.h +++ b/include/wlr/types/wlr_export_dmabuf_v1.h @@ -9,6 +9,7 @@ #ifndef WLR_TYPES_WLR_EXPORT_DMABUF_V1_H #define WLR_TYPES_WLR_EXPORT_DMABUF_V1_H +#include <stdbool.h> #include <wayland-server.h> #include <wlr/render/dmabuf.h> @@ -22,6 +23,8 @@ struct wlr_export_dmabuf_frame_v1 { struct wlr_dmabuf_attributes attribs; struct wlr_output *output; + bool cursor_locked; + struct wl_listener output_swap_buffers; }; diff --git a/include/wlr/types/wlr_keyboard.h b/include/wlr/types/wlr_keyboard.h index 3e207523..ae279541 100644 --- a/include/wlr/types/wlr_keyboard.h +++ b/include/wlr/types/wlr_keyboard.h @@ -50,7 +50,7 @@ struct wlr_keyboard_modifiers { struct wlr_keyboard { const struct wlr_keyboard_impl *impl; - int keymap_fd; + char *keymap_string; size_t keymap_size; struct xkb_keymap *keymap; struct xkb_state *xkb_state; diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index ded57959..ecd4f759 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -107,6 +107,7 @@ struct wlr_output { struct wl_list cursors; // wlr_output_cursor::link struct wlr_output_cursor *hardware_cursor; + int software_cursor_locks; // number of locks forcing software cursors // the output position in layout space reported to clients int32_t lx, ly; @@ -196,6 +197,14 @@ bool wlr_output_export_dmabuf(struct wlr_output *output, void wlr_output_set_fullscreen_surface(struct wlr_output *output, struct wlr_surface *surface); struct wlr_output *wlr_output_from_resource(struct wl_resource *resource); +/** + * Locks the output to only use software cursors instead of hardware cursors. + * This is useful if hardware cursors need to be temporarily disabled (e.g. + * during screen capture). There must be as many unlocks as there have been + * locks to restore the original state. There should never be an unlock before + * a lock. + */ +void wlr_output_lock_software_cursors(struct wlr_output *output, bool lock); struct wlr_output_cursor *wlr_output_cursor_create(struct wlr_output *output); diff --git a/include/wlr/types/wlr_screencopy_v1.h b/include/wlr/types/wlr_screencopy_v1.h index aba32a45..c7197bab 100644 --- a/include/wlr/types/wlr_screencopy_v1.h +++ b/include/wlr/types/wlr_screencopy_v1.h @@ -9,6 +9,7 @@ #ifndef WLR_TYPES_WLR_SCREENCOPY_V1_H #define WLR_TYPES_WLR_SCREENCOPY_V1_H +#include <stdbool.h> #include <wayland-server.h> #include <wlr/types/wlr_box.h> @@ -35,6 +36,8 @@ struct wlr_screencopy_frame_v1 { struct wlr_box box; int stride; + bool overlay_cursor, cursor_locked; + struct wl_shm_buffer *buffer; struct wl_listener buffer_destroy; diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h index eb5d6985..8247aa15 100644 --- a/include/wlr/xwayland.h +++ b/include/wlr/xwayland.h @@ -163,6 +163,7 @@ struct wlr_xwayland_surface { struct wl_signal set_pid; struct wl_signal set_window_type; struct wl_signal set_hints; + struct wl_signal set_decorations; struct wl_signal set_override_redirect; struct wl_signal ping_timeout; } events; |