From 5d430a3fa677ada04233be94a5a464cede2d1847 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 22 Mar 2022 12:42:33 +0000 Subject: [PATCH] qrt bug workaround - qt does not remove WM_STATE when withdrawing as per icccm - client should remove WM_STATE when withdrawing... and qt relies on WM_STATE to know if it re-show a window - the property it itself refused to remove... --- src/bin/e_comp_x.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 95a05dfac..cb299a6da 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -5214,6 +5214,11 @@ _e_comp_x_hook_client_del(void *d EINA_UNUSED, E_Client *ec) else #endif { + // work around broken clients that withdraw windows and don't + // remove WM_STATE themselves... like qt6 + telegram and media + // window popups. + ecore_x_window_prop_property_del(e_client_util_win_get(ec), + ECORE_X_ATOM_WM_STATE); if (e_pixmap_free(ec->pixmap)) e_pixmap_client_set(ec->pixmap, NULL); ec->pixmap = NULL;