diff options
author | László Németh <nemeth@numbertext.org> | 2019-11-26 16:42:15 +0100 |
---|---|---|
committer | Xisco Faulí <xiscofauli@libreoffice.org> | 2019-11-27 12:05:31 +0100 |
commit | 835f0e940a600cfac0ac41efb8a4e6015a122dd7 (patch) | |
tree | 3bb278d61dd0bcbf8cc353a75bc9b21b2b333451 /writerfilter | |
parent | 4115b4c461fc6f4710e24a2e2b24d99e6bbca565 (diff) |
tdf#76586 fix table width of auto-width nested tables
when they have (sometimes incorrect) fixed cell widths.
Change-Id: I98bf37bfce72b84eed14e354520e4741ae2ddada
Reviewed-on: https://gerrit.libreoffice.org/83787
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
(cherry picked from commit 001e11c8f4a52a2eb308562bdee8516efb77b96b)
Reviewed-on: https://gerrit.libreoffice.org/83851
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableManager.cxx | 12 | ||||
-rw-r--r-- | writerfilter/source/dmapper/TableManager.hxx | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx index e29637583631..3a3b713723ee 100644 --- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx @@ -644,8 +644,16 @@ void DomainMapperTableManager::endOfRowAction() { if(nTableWidth > 100 || nTableWidth <= 0) { - pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH, m_nTableWidth); - pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH_TYPE, text::SizeType::FIX); + if(getTableDepth() > 1 && !m_bTableSizeTypeInserted) + { + pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH, sal_Int32(100)); + pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH_TYPE, text::SizeType::VARIABLE); + } + else + { + pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH, m_nTableWidth); + pTablePropMap->setValue(TablePropertyMap::TABLE_WIDTH_TYPE, text::SizeType::FIX); + } } } uno::Sequence< text::TableColumnSeparator > aSeparators( m_nCell.back( ) - 1 ); diff --git a/writerfilter/source/dmapper/TableManager.hxx b/writerfilter/source/dmapper/TableManager.hxx index 6c7a9ea1e21e..47947ee724ee 100644 --- a/writerfilter/source/dmapper/TableManager.hxx +++ b/writerfilter/source/dmapper/TableManager.hxx @@ -328,6 +328,8 @@ protected: */ sal_uInt32 getTableDepthDifference() const { return mnTableDepthNew - mnTableDepth; } + sal_uInt32 getTableDepth() const { return mnTableDepthNew; } + /** Action to be carried out at the end of the last paragraph of a cell. |