aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2017-12-29 21:29:56 +0100
committerGitHub <noreply@github.com>2017-12-29 21:29:56 +0100
commit80ed4d4d20807f021c473b77d44ce6b464afc0c7 (patch)
tree9842be5bb2107e638fce5e2a2f5f2318df19f453 /include
parentc23bd2ab7a020fdbfbb3dd1ee0b3f5c8b5807253 (diff)
parent6ed1884c84f470707ed5e6b56a92d86b51034625 (diff)
Merge pull request #541 from martinetd/xwm_fixes
Fix xwayland restart... and add wlr_seat destroy listener.
Diffstat (limited to 'include')
-rw-r--r--include/rootston/seat.h2
-rw-r--r--include/wlr/types/wlr_seat.h2
-rw-r--r--include/wlr/xwayland.h5
-rw-r--r--include/wlr/xwm.h1
4 files changed, 9 insertions, 1 deletions
diff --git a/include/rootston/seat.h b/include/rootston/seat.h
index 7822bb70..cf5dd3b2 100644
--- a/include/rootston/seat.h
+++ b/include/rootston/seat.h
@@ -21,6 +21,8 @@ struct roots_seat {
struct wl_list pointers;
struct wl_list touch;
struct wl_list tablet_tools;
+
+ struct wl_listener seat_destroy;
};
struct roots_seat_view {
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);