diff options
author | emersion <contact@emersion.fr> | 2017-12-29 21:29:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-29 21:29:56 +0100 |
commit | 80ed4d4d20807f021c473b77d44ce6b464afc0c7 (patch) | |
tree | 9842be5bb2107e638fce5e2a2f5f2318df19f453 /include/wlr | |
parent | c23bd2ab7a020fdbfbb3dd1ee0b3f5c8b5807253 (diff) | |
parent | 6ed1884c84f470707ed5e6b56a92d86b51034625 (diff) |
Merge pull request #541 from martinetd/xwm_fixes
Fix xwayland restart... and add wlr_seat destroy listener.
Diffstat (limited to 'include/wlr')
-rw-r--r-- | include/wlr/types/wlr_seat.h | 2 | ||||
-rw-r--r-- | include/wlr/xwayland.h | 5 | ||||
-rw-r--r-- | include/wlr/xwm.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h index f7dea52f..e049d4c7 100644 --- a/include/wlr/types/wlr_seat.h +++ b/include/wlr/types/wlr_seat.h @@ -207,6 +207,8 @@ struct wlr_seat { struct wl_signal selection; struct wl_signal primary_selection; + + struct wl_signal destroy; } events; void *data; diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h index 8d71a7ab..b6671de1 100644 --- a/include/wlr/xwayland.h +++ b/include/wlr/xwayland.h @@ -22,7 +22,6 @@ struct wlr_xwayland { struct wl_client *client; struct wl_display *wl_display; struct wlr_compositor *compositor; - struct wlr_seat *seat; time_t server_start; struct wl_event_source *sigusr1_source; @@ -31,6 +30,10 @@ struct wlr_xwayland { struct wlr_xwm *xwm; struct wlr_xwayland_cursor *cursor; + /* Anything above seat is reset on Xwayland restart, rest is conserved */ + struct wlr_seat *seat; + struct wl_listener seat_destroy; + struct { struct wl_signal ready; struct wl_signal new_surface; diff --git a/include/wlr/xwm.h b/include/wlr/xwm.h index cbc2f132..35c43b18 100644 --- a/include/wlr/xwm.h +++ b/include/wlr/xwm.h @@ -108,6 +108,7 @@ void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride, int xwm_handle_selection_event(struct wlr_xwm *xwm, xcb_generic_event_t *event); void xwm_selection_init(struct wlr_xwm *xwm); +void xwm_selection_finish(struct wlr_xwm *xwm); void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat); |