diff -uNr old/slideshow/source/engine/shapes/drawshape.cxx new/slideshow/source/engine/shapes/drawshape.cxx
--- old/slideshow/source/engine/shapes/drawshape.cxx 2008-01-23 18:34:58.218750000 +0800
+++ new/slideshow/source/engine/shapes/drawshape.cxx 2008-01-23 18:34:36.046875000 +0800
@@ -929,8 +929,14 @@
}
// hyperlink support
- void DrawShape::prepareHyperlinkIndices()
+ void DrawShape::prepareHyperlinkIndices() const
{
+ if ( !maHyperlinkIndices.empty())
+ {
+ maHyperlinkIndices.clear();
+ maHyperlinkRegions.clear();
+ }
+
sal_Int32 nIndex = 0;
for ( MetaAction * pCurrAct = mpCurrMtf->FirstAction();
pCurrAct != 0; pCurrAct = mpCurrMtf->NextAction() )
@@ -1299,6 +1305,11 @@
{
ensureVerboseMtfComments();
+ if ( hasHyperlinks())
+ {
+ prepareHyperlinkIndices();
+ }
+
return maSubsetting.getTreeNode( nNodeIndex, eNodeType );
}
diff -uNr old/slideshow/source/engine/shapes/drawshape.hxx new/slideshow/source/engine/shapes/drawshape.hxx
--- old/slideshow/source/engine/shapes/drawshape.hxx 2008-01-23 18:32:38.656250000 +0800
+++ new/slideshow/source/engine/shapes/drawshape.hxx 2008-01-23 18:31:15.437500000 +0800
@@ -296,7 +296,7 @@
void ensureVerboseMtfComments() const;
bool hasIntrinsicAnimation() const;
bool hasHyperlinks() const;
- void prepareHyperlinkIndices();
+ void prepareHyperlinkIndices() const;
/// The associated XShape
::com::sun::star::uno::Reference<
@@ -354,7 +354,7 @@
typedef ::std::pair HyperlinkIndexPair;
typedef ::std::vector HyperlinkIndexPairVector;
- HyperlinkIndexPairVector maHyperlinkIndices;
+ mutable HyperlinkIndexPairVector maHyperlinkIndices;
mutable HyperlinkRegions maHyperlinkRegions;
/// Delegated subset handling