Blob Blame History Raw
From 546cd96371b5ae012e4f3bfe963ea299e1dcec54 Mon Sep 17 00:00:00 2001
From: Michael Stahl <mstahl@redhat.com>
Date: Tue, 29 Jul 2014 22:21:53 +0200
Subject: [PATCH 073/137] fdo#81384: writerfilter: turn the horrible btLr cell
 text dir hack

... by 5 degrees to starboard, which lets the row in the bugdoc appear,
altough the height is a bit insufficient still.  Why that works, is a
nautic mystery to me, i'd say this whole btLr emulation nonsense needs
to be keel-hauled, but after this patch i'll need some rum, arrrr...

(regression from commit 0208ead70a9412ccd554fcef3e9308f8ca17037b
 and commit 970160f78ef6cc7abacfa252daa8451e1f0117bb)

Change-Id: Ie0c6ec88b6d6635379b9127f6460647f14776aad
(cherry picked from commit 5893a7536a0bbce57c4a2f89680dcb4cff3d06d7)
Reviewed-on: https://gerrit.libreoffice.org/10631
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
---
 writerfilter/source/dmapper/DomainMapperTableManager.cxx | 3 ---
 writerfilter/source/dmapper/TablePropertiesHandler.cxx   | 5 ++++-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index 6a95be3..8271492 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -351,10 +351,7 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
                         if (!getCellProps() || getCellProps()->find(PROP_VERTICAL_MERGE) == getCellProps()->end())
                         {
                             // Though in case there will be a vertical merge, don't do this, it hides text that is supposed to be visible.
-                            TablePropertyMapPtr pRowPropMap( new TablePropertyMap );
-                            pRowPropMap->Insert(PROP_SIZE_TYPE, uno::makeAny(text::SizeType::FIX));
                             m_bRowSizeTypeInserted = true;
-                            insertRowProps(pRowPropMap);
                         }
                         m_bHasBtlrCell = true;
                         }
diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
index 3aa4427..e6576e0 100644
--- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx
+++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
@@ -97,11 +97,14 @@ namespace dmapper {
 
                     DomainMapperTableManager* pManager = dynamic_cast<DomainMapperTableManager*>(m_pTableManager);
                     // In case any of the cells has the btLr cell direction, then an explicit minimal size will just hide the whole row, don't do that.
-                    if (pMeasureHandler->GetRowHeightSizeType() != text::SizeType::MIN || !pManager || !pManager->HasBtlrCell())
+                    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())
                             pPropMap->Insert( PROP_SIZE_TYPE, uno::makeAny( pMeasureHandler->GetRowHeightSizeType() ), false);
+                        else
+                            pPropMap->Insert( PROP_SIZE_TYPE, uno::makeAny(text::SizeType::FIX), false);
 
                         pPropMap->Insert( PROP_HEIGHT, uno::makeAny(pMeasureHandler->getMeasureValue() ));
                     }
-- 
1.9.3