aboutsummaryrefslogtreecommitdiff
path: root/xwayland
diff options
context:
space:
mode:
Diffstat (limited to 'xwayland')
-rw-r--r--xwayland/selection.c4
-rw-r--r--xwayland/xwayland.c5
-rw-r--r--xwayland/xwm.c9
3 files changed, 18 insertions, 0 deletions
diff --git a/xwayland/selection.c b/xwayland/selection.c
index ffcde4d0..b16b8731 100644
--- a/xwayland/selection.c
+++ b/xwayland/selection.c
@@ -9,6 +9,7 @@
#include <wlr/util/log.h>
#include <wlr/xwm.h>
#include <xcb/xfixes.h>
+#include "util/defs.h"
static const size_t incr_chunk_size = 64 * 1024;
@@ -805,6 +806,7 @@ static void selection_init(struct wlr_xwm *xwm,
selection->atom, mask);
}
+WLR_API
void xwm_selection_init(struct wlr_xwm *xwm) {
uint32_t values[] = { XCB_EVENT_MASK_PROPERTY_CHANGE };
xwm->selection_window = xcb_generate_id(xwm->xcb_conn);
@@ -828,6 +830,7 @@ void xwm_selection_init(struct wlr_xwm *xwm) {
selection_init(xwm, &xwm->primary_selection, xwm->atoms[PRIMARY]);
}
+WLR_API
void xwm_selection_finish(struct wlr_xwm *xwm) {
if (!xwm) {
return;
@@ -896,6 +899,7 @@ static void seat_handle_primary_selection(struct wl_listener *listener,
xwm_selection_set_owner(&xwm->primary_selection, source != NULL);
}
+WLR_API
void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat) {
if (xwm->seat != NULL) {
wl_list_remove(&xwm->seat_selection.link);
diff --git a/xwayland/xwayland.c b/xwayland/xwayland.c
index 1d935180..3ef4d41c 100644
--- a/xwayland/xwayland.c
+++ b/xwayland/xwayland.c
@@ -20,6 +20,7 @@
#include <wlr/xwayland.h>
#include <wlr/xwm.h>
#include "sockets.h"
+#include "util/defs.h"
#include "util/signal.h"
#ifdef __FreeBSD__
@@ -336,12 +337,14 @@ static bool wlr_xwayland_start(struct wlr_xwayland *wlr_xwayland,
return true;
}
+WLR_API
void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland) {
wlr_xwayland_set_seat(wlr_xwayland, NULL);
wlr_xwayland_finish(wlr_xwayland);
free(wlr_xwayland);
}
+WLR_API
struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display,
struct wlr_compositor *compositor) {
struct wlr_xwayland *wlr_xwayland = calloc(1, sizeof(struct wlr_xwayland));
@@ -355,6 +358,7 @@ struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display,
return NULL;
}
+WLR_API
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) {
@@ -386,6 +390,7 @@ static void wlr_xwayland_handle_seat_destroy(struct wl_listener *listener,
wlr_xwayland_set_seat(xwayland, NULL);
}
+WLR_API
void wlr_xwayland_set_seat(struct wlr_xwayland *xwayland,
struct wlr_seat *seat) {
if (xwayland->seat) {
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 94dfdaab..72b7a8a4 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -14,6 +14,7 @@
#include <xcb/render.h>
#include <xcb/xcb_image.h>
#include <xcb/xfixes.h>
+#include "util/defs.h"
#include "util/signal.h"
#ifdef WLR_HAS_XCB_ICCCM
@@ -1043,6 +1044,7 @@ static void handle_compositor_surface_create(struct wl_listener *listener,
}
}
+WLR_API
void wlr_xwayland_surface_activate(struct wlr_xwayland_surface *xsurface,
bool activated) {
struct wlr_xwayland_surface *focused = xsurface->xwm->focus_surface;
@@ -1053,6 +1055,7 @@ void wlr_xwayland_surface_activate(struct wlr_xwayland_surface *xsurface,
}
}
+WLR_API
void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface,
int16_t x, int16_t y, uint16_t width, uint16_t height) {
xsurface->x = x;
@@ -1069,6 +1072,7 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface,
xcb_flush(xwm->xcb_conn);
}
+WLR_API
void wlr_xwayland_surface_close(struct wlr_xwayland_surface *xsurface) {
struct wlr_xwm *xwm = xsurface->xwm;
@@ -1100,6 +1104,7 @@ void wlr_xwayland_surface_close(struct wlr_xwayland_surface *xsurface) {
xcb_flush(xwm->xcb_conn);
}
+WLR_API
void xwm_destroy(struct wlr_xwm *xwm) {
if (!xwm) {
return;
@@ -1292,6 +1297,7 @@ static void xwm_get_render_format(struct wlr_xwm *xwm) {
free(reply);
}
+WLR_API
void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride,
uint32_t width, uint32_t height, int32_t hotspot_x, int32_t hotspot_y) {
if (!xwm->render_format_id) {
@@ -1332,6 +1338,7 @@ void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride,
xcb_flush(xwm->xcb_conn);
}
+WLR_API
struct wlr_xwm *xwm_create(struct wlr_xwayland *wlr_xwayland) {
struct wlr_xwm *xwm = calloc(1, sizeof(struct wlr_xwm));
if (xwm == NULL) {
@@ -1418,6 +1425,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *wlr_xwayland) {
return xwm;
}
+WLR_API
void wlr_xwayland_surface_set_maximized(struct wlr_xwayland_surface *surface,
bool maximized) {
surface->maximized_horz = maximized;
@@ -1426,6 +1434,7 @@ void wlr_xwayland_surface_set_maximized(struct wlr_xwayland_surface *surface,
xcb_flush(surface->xwm->xcb_conn);
}
+WLR_API
void wlr_xwayland_surface_set_fullscreen(struct wlr_xwayland_surface *surface,
bool fullscreen) {
surface->fullscreen = fullscreen;