aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_export_dmabuf_v1.h3
-rw-r--r--include/wlr/types/wlr_output.h9
-rw-r--r--include/wlr/types/wlr_screencopy_v1.h3
3 files changed, 15 insertions, 0 deletions
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_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;