summaryrefslogtreecommitdiff
path: root/oox/source
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source')
-rw-r--r--oox/source/core/relations.cxx6
-rw-r--r--oox/source/drawingml/hyperlinkcontext.cxx5
2 files changed, 11 insertions, 0 deletions
diff --git a/oox/source/core/relations.cxx b/oox/source/core/relations.cxx
index ef9510ce54b7..ad39489671c0 100644
--- a/oox/source/core/relations.cxx
+++ b/oox/source/core/relations.cxx
@@ -92,6 +92,12 @@ OUString Relations::getExternalTargetFromRelId( const OUString& rRelId ) const
return (pRelation && pRelation->mbExternal) ? pRelation->maTarget : OUString();
}
+OUString Relations::getInternalTargetFromRelId( const OUString& rRelId ) const
+{
+ const Relation* pRelation = getRelationFromRelId( rRelId );
+ return (pRelation && !pRelation->mbExternal) ? pRelation->maTarget : OUString();
+}
+
OUString Relations::getFragmentPathFromRelation( const Relation& rRelation ) const
{
// no target, no fragment path
diff --git a/oox/source/drawingml/hyperlinkcontext.cxx b/oox/source/drawingml/hyperlinkcontext.cxx
index 06958aa13de8..ed03ddd8c362 100644
--- a/oox/source/drawingml/hyperlinkcontext.cxx
+++ b/oox/source/drawingml/hyperlinkcontext.cxx
@@ -59,6 +59,11 @@ HyperLinkContext::HyperLinkContext( ContextHandler& rParent,
OSL_TRACE("OOX: URI href %s", ::rtl::OUStringToOString (sHref, RTL_TEXTENCODING_UTF8).pData->buffer);
sURL = getFilter().getAbsoluteUrl( sHref );
}
+ else
+ {
+ // not sure if we also need to set sHref to the internal target
+ sURL = getRelations().getInternalTargetFromRelId( aRelId );
+ }
}
OUString sTooltip = xAttributes->getOptionalValue( R_TOKEN( tooltip ) );
if ( !sTooltip.isEmpty() )