You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
11 years ago
|
From a5793f5e0013b156600fd718d8f77870a9e73032 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||
|
Date: Fri, 18 Jul 2014 09:06:44 +0100
|
||
|
Subject: [PATCH] Resolves: fdo#81487 pasting into outline view crashes impress
|
||
|
|
||
|
CreateTitleTextObject will call indirectly ImpPageChange which
|
||
|
triggers tools::EventMultiplexerEvent::EID_PAGE_ORDER and so
|
||
|
in outlview.cxx without ignore page changes level in action
|
||
|
the outliner is filled in from the slide contents in
|
||
|
FillOutliner clearing the outliner contents and filling it
|
||
|
fresh, but..
|
||
|
|
||
|
a) this hack tower is not prepared for all the outliner
|
||
|
iterators to become invalid
|
||
|
b) the contents of this title object is empty, because
|
||
|
it was just created, and we didn't get a chance to fill
|
||
|
in its text.
|
||
|
|
||
|
This all works for typing vs pasting because the KeyInput
|
||
|
uses the OutlineViewPageChangesGuard guard which sets the
|
||
|
ignore pages changes bit.
|
||
|
|
||
|
So, given that OutlineView::UpdateDocument expects
|
||
|
the iterators of the outliner to be valid during
|
||
|
the lifetime of the method lock the full method with
|
||
|
the OutlineViewPageChangesGuard guard
|
||
|
|
||
|
Change-Id: Iecbf37d54f5f0c5a181be5f27832f769a3d2e389
|
||
|
---
|
||
|
sd/source/ui/view/outlview.cxx | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx
|
||
|
index 268a32b..a76bb0b 100644
|
||
|
--- a/sd/source/ui/view/outlview.cxx
|
||
|
+++ b/sd/source/ui/view/outlview.cxx
|
||
|
@@ -1535,6 +1535,8 @@ void OutlineView::EndModelChange()
|
||
|
/** updates all changes in the outliner model to the draw model */
|
||
|
void OutlineView::UpdateDocument()
|
||
|
{
|
||
|
+ OutlineViewPageChangesGuard aGuard(this);
|
||
|
+
|
||
|
const sal_uInt32 nPageCount = mrDoc.GetSdPageCount(PK_STANDARD);
|
||
|
Paragraph* pPara = mrOutliner.GetParagraph( 0 );
|
||
|
sal_uInt32 nPage;
|
||
|
--
|
||
|
1.9.3
|
||
|
|