On Fri Feb 27 09:15:44 2026 +0000, Rémi Bernon wrote:
Fwiw I'm not sure how well this works with virtual desktop, but the desktop window can change or you can have multiple desktop windows depending on the current thread associated desktop, so I don't think it should be cached. Only one desktop is active at a time and windows from a different desktop should probably be hidden, although I don't think winex11 implements that correctly either (but still I think it can open multiple desktops). In the current wineandroid implementation only a single desktop window is created per explorer.exe instance, and it does not change during its lifetime. Within this model, explorer.exe effectively acts as the platform integration point.
This differs from X11 or Wayland, where each process communicates independently with an external server (the X server or the Wayland compositor) using their respective protocols. In the wineandroid case, explorer.exe creates and owns the Android device integration, and child processes interact with that device rather than directly with the platform. If explorer.exe terminates, the entire session is effectively torn down anyway. Furthermore, wineandroid currently supports only one desktop window per session. When building with wineandroid, X11 or Wayland backends are not involved, so scenarios involving multiple desktops or dynamic desktop switching are not expected to occur in this configuration. In this particular case I did desktop window caching to avoid wineserver -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9874#note_130707