diff options
author | Henry Castro <hcastro@collabora.com> | 2018-05-06 22:40:05 -0400 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-05-23 13:19:20 +0200 |
commit | a2e6f31c6f90e446d1462e7c80f6b1317f7825bc (patch) | |
tree | 3e009520526d97336d29ba6a45fb1ff22e7b14f5 /sc/source/ui/docshell | |
parent | 40cf5a9b3dd619a650a94d8b65bf6987125b75fb (diff) |
tdf#117228: crash in SfxItemSet::GetItemState...
(unsigned short, bool, SfxPoolItem const**) when pasting comment of closed document
Re-work commit 1b7a8277aa3e9f73ccdf15e933a1ee3b42849a44.
In the tiled rendering case, each view has its own clipboard,
but not in desktop version which it has a shared clipboard each view.
Change-Id: I57b1ab81e4c141829dbad899330e5c22204c384a
Reviewed-on: https://gerrit.libreoffice.org/53922
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/ui/docshell')
-rw-r--r-- | sc/source/ui/docshell/docsh.cxx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index e83aad315aec..b814ddceb6b9 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -1018,6 +1018,20 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint ) // RegisterNewTargetNames doesn't exist any longer SfxGetpApp()->Broadcast(SfxHint( SfxHintId::ScDocNameChanged )); // Navigator } + else if (rHint.GetId() == SfxHintId::Deinitializing) + { + if (aDocument.IsClipboardSource()) + { + // Notes copied to the clipboard have a raw SdrCaptionObj pointer + // copied from this document, forget it as it references this + // document's drawing layer pages and what not, which otherwise when + // pasting to another document after this document was destructed would + // attempt to access non-existing data. Preserve the text data though. + ScDocument* pClipDoc = ScModule::GetClipDoc(); + if (pClipDoc) + pClipDoc->ClosingClipboardSource(); + } + } } // Load contents for organizer |