The main motivation is to fix visual glitches in the slide effect on X11.
The Window::moveResizeOutput() property is used to track the output where the window is expected to land after the move or resize operation completes.
This can be used to decouple the current output from the next output, which allows us to send better xdg_toplevel.configure_bounds events or make windows stick to outputs while keeping Window::output() in sync with the current output layout.
plasmashell may see new output layout before kwin_x11 and move desktop windows accordingly. If that happens, the desktop windows will have old outputs in Window::output() property because the Workspace doesn't re-check outputs if the output layout changes.
In order to fix the Window::output() property getting out of sync, re-check the current output after the output layout changes. It should also fix a visual glitch in the slide effect caused by EffectWindow::screen() not being correct.