I compared the xlib code that switches virtual desktop with that in xdotool (which I verified works properly in terms of updating thumbnail and also always sets focus to top window on current virtual desktop). The code over here and that in xdotool are virtually identical. When I copy/paste the code from xdotool to wm_set_desktop_ewmh(), the behaviour of skippy-xd, in particular #106 and #112 remained.
I compared the xlib code that switches virtual desktop with that in xdotool (which I verified works properly in terms of updating thumbnail and also always sets focus to top window on current virtual desktop). The code over here and that in xdotool are virtually identical. When I copy/paste the code from xdotool to wm_set_desktop_ewmh(), the behaviour of skippy-xd, in particular #106 and #112 remained.
Hence, it looks like it is not wm_set_desktop_ewmh() that needs updating (the code also conforms to https://specifications.freedesktop.org/wm-spec/latest/ar01s03.html#idm45820873325616). It is perhaps some sort of nuance in how wm_set_desktop_ewmh() is called with some timing dependency or something... I don't know.
This PR seems to fix #112 without fixing #106. Anyone know the reason please let me know :P