Isn’t this supposed to be a job for the window manager?
For example, my virtualbox install has some mouse pointer bugs on wayland, and I can’t run waydroid on X. These things are weird to me. Shouldn’t window managers abstract all that for the software we run?
Typically the abstraction to draw elemnts inside a app window is in the application framework, like GTK, Qt, Electron (chromium), etc.
This is also why apps built with the same framework typically have the same problem on wayland (looking at you, electron).
The abstractions you are thinking of is not in the window manager, which only controls things outside of the main app window, like tiling, border, window top bar, etc.
Yes, part of my confusion was simply mixing up the job of the app frameworks/gui toolkits for the wm. It was weird to me that some apps like firefox had to provide wayland support by themselves and couldn’t simply rely on abstraction layers from whathever they’re coded in. However, I looked for some info, and found out that firefox renders some widgets on its own, and now it makes sense that they need to provide wayland support.