xwm: Take WM_S0 manager selection
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index 273cb1e..0a31a65 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -971,6 +971,7 @@
{ "WM_TAKE_FOCUS", F(atom.wm_take_focus) },
{ "WM_DELETE_WINDOW", F(atom.wm_delete_window) },
{ "WM_STATE", F(atom.wm_state) },
+ { "WM_S0", F(atom.wm_s0) },
{ "_NET_WM_NAME", F(atom.net_wm_name) },
{ "_NET_WM_ICON", F(atom.net_wm_icon) },
{ "_NET_WM_STATE", F(atom.net_wm_state) },
@@ -1110,6 +1111,12 @@
32, /* format */
1, &wm->wm_window);
+ /* Claim the WM_S0 selection even though we don't suport
+ * the --replace functionality. */
+ xcb_set_selection_owner(wm->conn,
+ wm->wm_window,
+ wm->atom.wm_s0,
+ XCB_TIME_CURRENT_TIME);
}
struct weston_wm *
diff --git a/src/xwayland/xwayland.h b/src/xwayland/xwayland.h
index 79cbef3..438b7be 100644
--- a/src/xwayland/xwayland.h
+++ b/src/xwayland/xwayland.h
@@ -81,6 +81,7 @@
xcb_atom_t wm_take_focus;
xcb_atom_t wm_delete_window;
xcb_atom_t wm_state;
+ xcb_atom_t wm_s0;
xcb_atom_t net_wm_name;
xcb_atom_t net_wm_icon;
xcb_atom_t net_wm_state;