summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx8
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx1
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx5
3 files changed, 13 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 527a172dc38f..57261fc7adab 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -130,6 +130,14 @@ struct FieldConversion
typedef ::std::map< OUString, FieldConversion>
FieldConversionMap_t;
+uno::Any FloatingTableInfo::getPropertyValue(OUString propertyName){
+
+ beans::PropertyValue* pFrameProperties = m_aFrameProperties.getArray();
+ for( int i = 0 ; i < m_aFrameProperties.getLength(); i++ )
+ if( pFrameProperties[i].Name == propertyName )
+ return pFrameProperties[i].Value ;
+ return uno::Any() ;
+}
DomainMapper_Impl::DomainMapper_Impl(
DomainMapper& rDMapper,
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
index 952e6e0c944b..acd2898d1ea9 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -286,6 +286,7 @@ struct FloatingTableInfo
m_nTableWidth(nTableWidth)
{
}
+ uno::Any getPropertyValue(OUString propertyName);
};
class DomainMapper;
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index 19d8714168ae..141a338ee5b8 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -917,7 +917,10 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
// If the table is wider than the text area, then don't create a fly
// for the table: no wrapping will be performed anyway, but multi-page
// tables will be broken.
- if (rInfo.m_nTableWidth < nTextAreaWidth)
+ // If the position is relative to the edge of the page, then we always
+ // create the fly.
+ if ( ( rInfo.getPropertyValue("HoriOrientRelation") == text::RelOrientation::PAGE_FRAME ) ||
+ ( rInfo.m_nTableWidth < nTextAreaWidth ) )
xBodyText->convertToTextFrame(rInfo.m_xStart, rInfo.m_xEnd, rInfo.m_aFrameProperties);
}
rPendingFloatingTables.clear();