I've split the client window helpers to a separate MR. I think they are useful on their own to make reasoning easier. I actually found an instance of a missing XSync btw (in `set_window_visual`, when `whole_window` is re-created and the new one used in a `XReparentWindow` call).