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;