xwm: Claim the CLIPBOARD_MANAGER selection
diff --git a/src/xwayland/selection.c b/src/xwayland/selection.c
index f10032e..579425b 100644
--- a/src/xwayland/selection.c
+++ b/src/xwayland/selection.c
@@ -521,6 +521,15 @@
wm->incr = 0;
wm->flush_property_on_delete = 0;
+ if (selection_request->selection == wm->atom.clipboard_manager) {
+ /* The weston clipboard should already have grabbed
+ * the first target, so just send selection notify
+ * now. This isn't synchronized with the clipboard
+ * finishing getting the data, so there's a race here. */
+ weston_wm_send_selection_notify(wm, wm->selection_request.property);
+ return;
+ }
+
if (selection_request->target == wm->atom.targets) {
weston_wm_send_targets(wm);
} else if (selection_request->target == wm->atom.timestamp) {
@@ -673,6 +682,11 @@
wm->screen->root_visual,
XCB_CW_EVENT_MASK, values);
+ xcb_set_selection_owner(wm->conn,
+ wm->selection_window,
+ wm->atom.clipboard_manager,
+ XCB_TIME_CURRENT_TIME);
+
mask =
XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER |
XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY |