Rémi Bernon (@rbernon) commented about dlls/winex11.drv/window.c:
return 0; }
+ /* Ignore shaped window config changes when a maximized window is still at the desired + * rect. This is needed because when calling SetWindowRgn for a maximized window in X11, + * the rect after adjustment is mistakenly taken as an actual window resize. Syncing back X11 rects + * that do not include the adjustment causes SetWindowRgn to be called again, leading to visual flickering + * of the application window.*/ + if (data->shaped && (data->current_state.net_wm_state & (1 << NET_WM_STATE_MAXIMIZED)) && + EqualRect( &data->current_state.rect, &data->desired_state.rect )) + return 0;
I'm thinking we could perhaps just return early if `EqualRect( &data->current_state.rect, &data->desired_state.rect )`, and I'm not even completely sure why we get there if it's the case already. There's perhaps some corner case I'm missing, I'll need to look into it. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10915#note_143789