diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2019-02-12 13:48:53 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2019-02-28 15:52:51 +0100 |
commit | 05602710a047c58db0ceda88bedc291420990bc1 (patch) | |
tree | 3f74ed616190ad8b95a9f35942ba3149f223e68b /sc/source/ui/docshell/docfunc.cxx | |
parent | 07ba22e2953a91b61e770de2b4e3aefa9ea33dc6 (diff) |
reintroduce ScCaptionPtr
This basically reverts b6b1ded0a0539e7be1b5338de378a3276a6ff445, since it
introduces tdf#118707, and I cannot reproduce any of the original problems
when reverting.
The patch itself is technically correct, but the problem is in the Windows
implementation of clipboard handling, which uses delayed processing
of setting clipboard contents. This leads to previous clipboard contents
being deleted too late, and with shared_ptr instances of SdrCaptionObj may
get deleted after the related SdrModel has already been deleted.
A proper fix would be to remove the stupid delayed processing from
the clipboard code, but that's non-trivial. If that gets fixed, the change
removing ScCaptionPtr may most probably be applied again.
Change-Id: I29634847486aa955b20483c9eb38bba4fed87187
Reviewed-on: https://gerrit.libreoffice.org/67725
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sc/source/ui/docshell/docfunc.cxx')
-rw-r--r-- | sc/source/ui/docshell/docfunc.cxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index c5c9fcc23b1e..687ac5ad7ffe 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -1202,7 +1202,7 @@ bool ScDocFunc::ShowNote( const ScAddress& rPos, bool bShow ) if (ScViewData* pViewData = ScDocShell::GetViewData()) { if (ScDrawView* pDrawView = pViewData->GetScDrawView()) - pDrawView->SyncForGrid( pNote->GetCaption().get() ); + pDrawView->SyncForGrid( pNote->GetCaption()); } rDocShell.SetDocumentModified(); @@ -1279,7 +1279,7 @@ void ScDocFunc::ReplaceNote( const ScAddress& rPos, const OUString& rNoteText, c } // create the undo action - if( pUndoMgr && (aOldData.m_pCaption || aNewData.m_pCaption) ) + if( pUndoMgr && (aOldData.mxCaption || aNewData.mxCaption) ) pUndoMgr->AddUndoAction( std::make_unique<ScUndoReplaceNote>( rDocShell, rPos, aOldData, aNewData, pDrawLayer->GetCalcUndo() ) ); // repaint cell (to make note marker visible) |