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...
This commit is contained in:
Carsten Haitzler 2022-03-22 12:42:33 +00:00
parent 6f59af7e9f
commit 5d430a3fa6
1 changed files with 5 additions and 0 deletions

View File

@ -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;