summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-06-08 07:48:42 +0200
committerAndras Timar <andras.timar@collabora.com>2015-08-06 12:22:18 +0200
commit01b0c84509165c0e5f69673c90dc54a09f9cf77f (patch)
tree2c9d088863c0f8c89371e3e3f2ee7b5b94b8db43 /writerfilter
parentcaebfdbbbfec8904123e94e32ed157535c095e98 (diff)
tdf#82553 DOCX import: handle table margin when converting floattables
Change-Id: I7a3a233a34453153b3e1c0fe3d60bb0ede65dc86 (cherry picked from commit 292ec5fe8d01af6119325f1a426422bb42e58615)
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index dcf4f3bd349b..b9f46ff8039b 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -1029,6 +1029,16 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
for (size_t i = 0; i < rPendingFloatingTables.size(); ++i)
{
FloatingTableInfo& rInfo = rPendingFloatingTables[i];
+
+ // Count the layout width of the table.
+ sal_Int32 nTableWidth = rInfo.m_nTableWidth;
+ sal_Int32 nLeftMargin = 0;
+ if (rInfo.getPropertyValue("LeftMargin") >>= nLeftMargin)
+ nTableWidth += nLeftMargin;
+ sal_Int32 nRightMargin = 0;
+ if (rInfo.getPropertyValue("RightMargin") >>= nRightMargin)
+ nTableWidth += nRightMargin;
+
// 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.
@@ -1037,7 +1047,7 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
// If there are columns, always create the fly, otherwise the columns would
// restrict geometry of the table.
if ( ( rInfo.getPropertyValue("HoriOrientRelation") == text::RelOrientation::PAGE_FRAME ) ||
- ( rInfo.m_nTableWidth < nTextAreaWidth ) || ColumnCount() + 1 >= 2 )
+ nTableWidth < nTextAreaWidth || ColumnCount() + 1 >= 2 )
xBodyText->convertToTextFrame(rInfo.m_xStart, rInfo.m_xEnd, rInfo.m_aFrameProperties);
}
rPendingFloatingTables.clear();