aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/wlr/xwayland.h11
-rw-r--r--include/xwayland/internals.h16
2 files changed, 26 insertions, 1 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index ef9cc887..f61a90bd 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -1,5 +1,11 @@
#ifndef _WLR_XWAYLAND_H
#define _WLR_XWAYLAND_H
+#include <time.h>
+#include <sys/types.h>
+#include <stdbool.h>
+#include <wlr/types/wlr_compositor.h>
+
+struct wlr_xwm;
struct wlr_xwayland {
pid_t pid;
@@ -7,11 +13,14 @@ struct wlr_xwayland {
int x_fd[2], wl_fd[2], wm_fd[2];
struct wl_client *client;
struct wl_display *wl_display;
+ struct wlr_compositor *compositor;
time_t server_start;
+
+ struct wlr_xwm *xwm;
};
void wlr_xwayland_finish(struct wlr_xwayland *wlr_xwayland);
bool wlr_xwayland_init(struct wlr_xwayland *wlr_xwayland,
- struct wl_display *wl_display);
+ struct wl_display *wl_display, struct wlr_compositor *compositor);
#endif
diff --git a/include/xwayland/internals.h b/include/xwayland/internals.h
index b91f7930..46158bd0 100644
--- a/include/xwayland/internals.h
+++ b/include/xwayland/internals.h
@@ -1,6 +1,22 @@
#ifndef XWAYLAND_INTERNALS_H
#define XWAYLAND_INTERNALS_H
+#include <xcb/xcb.h>
+#include <wayland-server-core.h>
+#include <wlr/xwayland.h>
+
+struct wlr_xwm {
+ struct wlr_xwayland *xwayland;
+ struct wl_event_source *event_source;
+ struct wl_listener surface_listener;
+
+ xcb_connection_t *xcb_connection;
+ xcb_screen_t *xcb_screen;
+};
void unlink_sockets(int display);
int open_display_sockets(int socks[2]);
+
+void xwm_destroy(struct wlr_xwm *xwm);
+struct wlr_xwm *xwm_create(struct wlr_xwayland *wlr_xwayland);
+
#endif