aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/interfaces/wlr_output.h5
-rw-r--r--include/wlr/types/wlr_output.h9
-rw-r--r--include/wlr/types/wlr_seat.h1
-rw-r--r--include/wlr/xwayland.h6
4 files changed, 18 insertions, 3 deletions
diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h
index d365e8f5..b4f39d35 100644
--- a/include/wlr/interfaces/wlr_output.h
+++ b/include/wlr/interfaces/wlr_output.h
@@ -2,6 +2,7 @@
#define WLR_INTERFACES_WLR_OUTPUT_H
#include <stdbool.h>
+#include <wlr/types/wlr_box.h>
#include <wlr/types/wlr_output.h>
#include <wlr/backend.h>
@@ -31,4 +32,8 @@ struct wl_global *wlr_output_create_global(struct wlr_output *wlr_output,
struct wl_display *display);
void wlr_output_destroy_global(struct wlr_output *wlr_output);
+void wlr_output_transform_apply_to_box(enum wl_output_transform transform,
+ struct wlr_box *box, struct wlr_box *dest);
+enum wl_output_transform wlr_output_transform_invert(enum wl_output_transform);
+
#endif
diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h
index f9bce91f..e6323f9c 100644
--- a/include/wlr/types/wlr_output.h
+++ b/include/wlr/types/wlr_output.h
@@ -1,9 +1,9 @@
#ifndef WLR_TYPES_WLR_OUTPUT_H
#define WLR_TYPES_WLR_OUTPUT_H
+#include <stdbool.h>
#include <wayland-util.h>
#include <wayland-server.h>
-#include <stdbool.h>
struct wlr_output_mode {
uint32_t flags; // enum wl_output_mode
@@ -15,10 +15,12 @@ struct wlr_output_mode {
struct wlr_output_cursor {
struct wlr_output *output;
int32_t x, y;
+ bool enabled;
uint32_t width, height;
int32_t hotspot_x, hotspot_y;
struct wl_list link;
+ // only when using a software cursor without a surface
struct wlr_renderer *renderer;
struct wlr_texture *texture;
@@ -44,8 +46,9 @@ struct wlr_output {
uint32_t scale;
int32_t width, height;
int32_t phys_width, phys_height; // mm
- int32_t subpixel; // enum wl_output_subpixel
- int32_t transform; // enum wl_output_transform
+ enum wl_output_subpixel subpixel;
+ enum wl_output_transform transform;
+ bool needs_swap;
float transform_matrix[16];
diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h
index b1872a3d..b8b467d2 100644
--- a/include/wlr/types/wlr_seat.h
+++ b/include/wlr/types/wlr_seat.h
@@ -142,6 +142,7 @@ struct wlr_seat {
struct wlr_seat_pointer_request_set_cursor_event {
struct wlr_seat_client *seat_client;
struct wlr_surface *surface;
+ uint32_t serial;
int32_t hotspot_x, hotspot_y;
};
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 2d968133..bea97394 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -12,6 +12,7 @@
#endif
struct wlr_xwm;
+struct wlr_xwayland_cursor;
struct wlr_xwayland {
pid_t pid;
@@ -25,6 +26,7 @@ struct wlr_xwayland {
struct wl_event_source *sigusr1_source;
struct wl_listener destroy_listener;
struct wlr_xwm *xwm;
+ struct wlr_xwayland_cursor *cursor;
struct {
struct wl_signal new_surface;
@@ -148,6 +150,10 @@ struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display,
void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland);
+void wlr_xwayland_set_cursor(struct wlr_xwayland *wlr_xwayland,
+ uint8_t *pixels, uint32_t stride, uint32_t width, uint32_t height,
+ int32_t hotspot_x, int32_t hotspot_y);
+
void wlr_xwayland_surface_activate(struct wlr_xwayland *wlr_xwayland,
struct wlr_xwayland_surface *surface, bool activated);