aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-08-24 07:06:18 -0500
committerGitHub <noreply@github.com>2017-08-24 07:06:18 -0500
commitf10da8291b3f0d51b55262bd623511c8b8349a9e (patch)
treefebfff4ace5017dee7d6796eb1d1ac9f53604f1d /include/wlr
parenta138657598efafbd3cfd7c77cb32ba294d0b841c (diff)
parentb29c7d01b19fc8c6bda70af016bc536cc72fe4f9 (diff)
Merge pull request #119 from martinetd/xwayland
Xwayland
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_compositor.h4
-rw-r--r--include/wlr/xwayland.h42
2 files changed, 46 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_compositor.h b/include/wlr/types/wlr_compositor.h
index 1b2f890f..58a93760 100644
--- a/include/wlr/types/wlr_compositor.h
+++ b/include/wlr/types/wlr_compositor.h
@@ -9,6 +9,10 @@ struct wlr_compositor {
struct wlr_renderer *renderer;
struct wl_list surfaces;
struct wl_listener destroy_surface_listener;
+
+ struct {
+ struct wl_signal create_surface;
+ } events;
};
void wlr_compositor_destroy(struct wlr_compositor *wlr_compositor);
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
new file mode 100644
index 00000000..804e9962
--- /dev/null
+++ b/include/wlr/xwayland.h
@@ -0,0 +1,42 @@
+#ifndef _WLR_XWAYLAND_H
+#define _WLR_XWAYLAND_H
+#include <time.h>
+#include <sys/types.h>
+#include <stdbool.h>
+#include <wlr/types/wlr_compositor.h>
+#include <xcb/xcb.h>
+
+struct wlr_xwm;
+
+struct wlr_xwayland {
+ pid_t pid;
+ int display;
+ 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 wl_event_source *sigusr1_source;
+ struct wl_listener destroy_listener;
+ struct wlr_xwm *xwm;
+ struct wl_list displayable_windows;
+};
+
+struct wlr_x11_window {
+ xcb_window_t window_id;
+ uint32_t surface_id;
+ struct wl_list link;
+
+ struct wl_resource *surface;
+ struct wl_listener surface_destroy_listener;
+ int16_t x, y;
+ uint16_t width, height;
+ bool override_redirect;
+};
+
+void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland);
+struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display,
+ struct wlr_compositor *compositor);
+
+#endif