Part 3: DockNodeRemoveWindow() clears viewports so it doesn't get bounced back and forth.
Note that in case of called from e.g. dock builder this can happen mid-frame. Clearing Viewport here isn't well exercised yet. If window doesn't get a Begin() in same-frame it'll be hidden.
Refer to "viewport_owner_change_1" and "viewport_owner_change_2" in ImGuiTestSuite.
Amend 6b77668171
if(moving_window->ViewportOwned)// Synchronize viewport immediately because some overlays may relies on clipping rectangle before we Begin() into the window.
if(moving_window->Viewport&&moving_window->ViewportOwned)// Synchronize viewport immediately because some overlays may relies on clipping rectangle before we Begin() into the window.