diff options
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/TableManager.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/dmapper/TablePropertiesHandler.cxx | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/writerfilter/source/dmapper/TableManager.hxx b/writerfilter/source/dmapper/TableManager.hxx index e3760d0e627d..1a459cd1b784 100644 --- a/writerfilter/source/dmapper/TableManager.hxx +++ b/writerfilter/source/dmapper/TableManager.hxx @@ -241,6 +241,7 @@ protected: mState.resetCellProps(); } +public: TablePropertyMapPtr getRowProps() { return mState.getRowProps(); @@ -256,6 +257,7 @@ protected: mState.resetRowProps(); } +protected: void setInCell(bool bInCell) { mState.setInCell(bInCell); diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx index eb29b481f533..4db5a8c167b3 100644 --- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx +++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx @@ -90,8 +90,14 @@ namespace dmapper { const int MINLAY = 23; // sw/inc/swtypes.hxx, minimal possible size of frames. if (!pManager || !pManager->HasBtlrCell() || pMeasureHandler->getMeasureValue() > ConversionHelper::convertTwipToMM100(MINLAY)) { - // In case a cell already wanted fixed size, we should not overwrite it here. - if (!pManager || !pManager->IsRowSizeTypeInserted()) + bool bCantSplit = false; + if (pManager && pManager->getRowProps()) + { + boost::optional<PropertyMap::Property> oIsSplitAllowed = pManager->getRowProps()->getProperty(PROP_IS_SPLIT_ALLOWED); + bCantSplit = oIsSplitAllowed && !oIsSplitAllowed->second.get<bool>(); + } + // In case a cell already wanted fixed size and the row has <w:cantSplit/>, we should not overwrite it here. + if (!pManager || !pManager->IsRowSizeTypeInserted() || !bCantSplit) pPropMap->Insert( PROP_SIZE_TYPE, uno::makeAny( pMeasureHandler->GetRowHeightSizeType() ), false); else pPropMap->Insert( PROP_SIZE_TYPE, uno::makeAny(text::SizeType::FIX), false); |