https://bugs.documentfoundation.org/show_bug.cgi?id=152103
Bug ID: 152103
Summary: OutlineView::AddWindowToPaintView is broken after
splitting OutputDevice from Window
Product: LibreOffice
Version: 7.2.0.0.alpha0+
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: implementationError
Severity: normal
Priority: medium
Component: LibreOffice
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
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!
--
You are receiving this mail because:
You are the assignee for the bug.