aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/backend/drm/drm.h2
-rw-r--r--include/backend/headless.h3
-rw-r--r--include/backend/libinput.h1
-rw-r--r--include/backend/wayland.h2
-rw-r--r--include/backend/x11.h6
-rw-r--r--include/wlr/backend/multi.h3
-rw-r--r--include/wlr/types/wlr_export_dmabuf_v1.h3
-rw-r--r--include/wlr/types/wlr_keyboard.h2
-rw-r--r--include/wlr/types/wlr_output.h9
-rw-r--r--include/wlr/types/wlr_screencopy_v1.h3
-rw-r--r--include/wlr/xwayland.h1
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;