diff options
Diffstat (limited to 'include/wlr')
-rw-r--r-- | include/wlr/types/wlr_compositor.h | 4 | ||||
-rw-r--r-- | include/wlr/xwayland.h | 42 |
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 |