https://bugs.freedesktop.org/show_bug.cgi?id=60513

Michael Stahl <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
           Assignee|[email protected] |[email protected]
                   |desktop.org                 |

--- Comment #10 from Michael Stahl <[email protected]> ---
so the problem is the code in SwDropCapsPict::UpdatePaintSettings()
which does:

            pPage->rSh.Push();
            pPage->rSh.ClearMark();
            ...
            pPage->rSh.Pop(sal_False);

the Push will store the pCurCrsr of the SwCrsrShell, which
in the case of a table selection is just one of the selected cells
(the rest of the cursor ring containing the other cells is not stored).

unfortunately ClearMark() will clear not just the pCurCrsr but
also the table cursor which is stored separately in SwCrsrShell
because life wouldn't be as much fun otherwise.

after thinking for some hours how the separate table cursor
could be stored (which appears to be quite difficult, think
of scenarios like Push, ClearMark, Push again, now you have
2 pCurCrsr to restore but just 1 table cursor, and how to
do that if the darn things are Rings...) i tried just
storing the position of the table cursor in Push()
and strangely this actually seems to work, because
UpdateCrsr() etc. will actually restore the table cursor
and the full cell cursor ring from a pCurCrsr that spans
multiple cells.  the fact that this seems to work is of
course highly suspicious :)

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to