aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/rootston/desktop.h3
-rw-r--r--include/rootston/input.h5
-rw-r--r--include/rootston/server.h1
-rw-r--r--include/rootston/view.h8
-rw-r--r--include/wlr/xwayland.h14
5 files changed, 24 insertions, 7 deletions
diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h
index ef361d87..5e138c11 100644
--- a/include/rootston/desktop.h
+++ b/include/rootston/desktop.h
@@ -34,11 +34,13 @@ struct roots_desktop {
struct wlr_compositor *compositor;
struct wlr_wl_shell *wl_shell;
struct wlr_xdg_shell_v6 *xdg_shell_v6;
+ struct wlr_xwayland *xwayland;
struct wlr_gamma_control_manager *gamma_control_manager;
struct wl_listener output_add;
struct wl_listener output_remove;
struct wl_listener xdg_shell_v6_surface;
+ struct wl_listener xwayland_surface;
struct wl_listener wl_shell_surface;
};
@@ -57,5 +59,6 @@ void output_remove_notify(struct wl_listener *listener, void *data);
void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data);
void handle_wl_shell_surface(struct wl_listener *listener, void *data);
+void handle_xwayland_surface(struct wl_listener *listener, void *data);
#endif
diff --git a/include/rootston/input.h b/include/rootston/input.h
index ec1cd32d..b3ce84d7 100644
--- a/include/rootston/input.h
+++ b/include/rootston/input.h
@@ -15,11 +15,6 @@ struct roots_keyboard {
struct wlr_input_device *device;
struct wl_listener key;
struct wl_list link;
- struct xkb_keymap *keymap;
- struct xkb_state *xkb_state;
- xkb_led_index_t leds[WLR_LED_LAST];
- int keymap_fd;
- size_t keymap_size;
};
struct roots_pointer {
diff --git a/include/rootston/server.h b/include/rootston/server.h
index d9fa8f9e..15e3a4ee 100644
--- a/include/rootston/server.h
+++ b/include/rootston/server.h
@@ -23,7 +23,6 @@ struct roots_server {
/* WLR tools */
struct wlr_backend *backend;
struct wlr_renderer *renderer;
- struct wlr_xwayland *xwayland;
/* Global resources */
struct wlr_data_device_manager *data_device_manager;
diff --git a/include/rootston/view.h b/include/rootston/view.h
index 1010566a..8d4d69c5 100644
--- a/include/rootston/view.h
+++ b/include/rootston/view.h
@@ -27,6 +27,12 @@ struct roots_xdg_surface_v6 {
struct wl_listener request_show_window_menu;
};
+struct roots_x11_surface {
+ struct roots_view *view;
+ // TODO: Maybe destroy listener should go in roots_view
+ struct wl_listener destroy;
+};
+
enum roots_view_type {
ROOTS_WL_SHELL_VIEW,
ROOTS_XDG_SHELL_V6_VIEW,
@@ -42,10 +48,12 @@ struct roots_view {
union {
struct wlr_wl_shell_surface *wl_shell_surface;
struct wlr_xdg_surface_v6 *xdg_surface_v6;
+ struct wlr_x11_window *x11_window;
};
union {
struct roots_wl_shell_surface *roots_wl_shell_surface;
struct roots_xdg_surface_v6 *roots_xdg_surface_v6;
+ struct roots_x11_surface *roots_x11_surface;
};
struct wlr_surface *wlr_surface;
struct wl_list link;
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index 41b8042f..e3eadc2d 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -21,6 +21,12 @@ struct wlr_xwayland {
struct wl_listener destroy_listener;
struct wlr_xwm *xwm;
struct wl_list displayable_windows;
+
+ struct {
+ struct wl_signal new_surface;
+ } events;
+
+ void *data;
};
struct wlr_x11_window {
@@ -28,11 +34,17 @@ struct wlr_x11_window {
uint32_t surface_id;
struct wl_list link;
- struct wl_resource *surface;
+ struct wlr_surface *surface;
struct wl_listener surface_destroy_listener;
int16_t x, y;
uint16_t width, height;
bool override_redirect;
+
+ struct {
+ struct wl_signal destroy;
+ } events;
+
+ void *data;
};
void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland);