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
This commit is contained in:
Dominique Martinet 2017-08-20 13:43:04 +02:00
parent ea906ea3e2
commit f912316d9b
2 changed files with 242 additions and 40 deletions

View file

@ -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);