aboutsummaryrefslogtreecommitdiff
path: root/xwayland/xwm.h
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2017-08-20 13:43:04 +0200
committerDominique Martinet <asmadeus@codewreck.org>2017-08-23 22:03:49 +0200
commitf912316d9b1ed39352efb07e773128b6e4f554aa (patch)
tree696b206d4ef9f94efdfbf4b101a3a3507032862f /xwayland/xwm.h
parentea906ea3e217c578aca76825c1d24a542b487380 (diff)
xwm: handle some more events
handle map/unmap_notify, property_notify (just logging for now), and client_message for wl_surface_id. We almost can display an X window now, just need the compositor to iterate over them
Diffstat (limited to 'xwayland/xwm.h')
-rw-r--r--xwayland/xwm.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/xwayland/xwm.h b/xwayland/xwm.h
index cfdd95f5..51d60395 100644
--- a/xwayland/xwm.h
+++ b/xwayland/xwm.h
@@ -65,16 +65,31 @@ static const char * const atom_map[ATOM_LAST] = {
"_NET_WM_STATE",
};
+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;
+};
struct wlr_xwm {
struct wlr_xwayland *xwayland;
struct wl_event_source *event_source;
- struct wl_listener surface_listener;
+ struct wl_listener surface_create_listener;
xcb_atom_t atoms[ATOM_LAST];
xcb_connection_t *xcb_conn;
xcb_screen_t *screen;
xcb_window_t window;
+
+ struct wl_list new_windows;
+ struct wl_list unpaired_windows;
+ struct wl_list paired_windows;
};
void xwm_destroy(struct wlr_xwm *xwm);