Commit 9090dc1f3b27195f5defd35586ac79357992be21 (split OutputDevice from Window, May 17, 2021) made vcl::Window (and its descendants) not inherit from OutputDevice. This silently broke code that used dynamic_cast: OutlineView::AddWindowToPaintView casts a passed OutputDevice* to sd::Window*. It now will always produce a nullptr. I do not know how this manifests visibly. I came across this when debugging something else. But it indeed looks very broken. I also don't have an idea how to fix this. There is code now that passes temporary OutputDevices to AddWindowToPaintView, having no associated vcl::Window, e.g. in SwViewShell::SmoothScroll; so it's not enough to simply change AddWindowToPaintView to take vcl::Window instead, and change all its call sites to pass "parent" vcl::Window instead. Noel: could you please take a look, how to fix it? Thanks!
Oh - there's OutputDevice::GetOwnerWindow - it would fit nicely!
https://gerrit.libreoffice.org/c/core/+/142942