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.

Reply via email to