diff options
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 8 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyMap.cxx | 5 |
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(); |