From 18c707d90ab4146afc7f4fefa22d362bed39b657 Mon Sep 17 00:00:00 2001 From: xurui Date: Fri, 4 Jul 2025 15:46:06 +0800 Subject: [PATCH] xwayland: don't ping if client not supports Signed-off-by: xurui --- xwayland/xwm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/xwayland/xwm.c b/xwayland/xwm.c index a82e8b145..9ee6390db 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -2745,6 +2745,22 @@ bool xwm_atoms_contains(struct wlr_xwm *xwm, xcb_atom_t *atoms, } void wlr_xwayland_surface_ping(struct wlr_xwayland_surface *surface) { + if (surface->pinging) { + return; + } + + // don't ping if client not supports + bool supports_ping = false; + for(size_t i = 0; i < surface->protocols_len; i++) { + if (surface->protocols[i] == surface->xwm->atoms[NET_WM_PING]) { + supports_ping = true; + break; + } + } + if (!supports_ping) { + return; + } + xcb_client_message_data_t data = { 0 }; data.data32[0] = surface->xwm->atoms[NET_WM_PING]; data.data32[1] = XCB_CURRENT_TIME;