summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-06-26 09:02:31 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-06-26 07:48:31 +0000
commiteab89b7f024a8c86decdcb3362c40c40a7df37df (patch)
tree88dcc23e04c6f1dff6d9a4060c40a1c758cd3e47 /writerfilter
parent63384060ec6610ef08af57b981d028c8a177a028 (diff)
tdf#89890 DOCX import: fix too large num pic bullet
Reading SwWW8ImplReader::CoreLoad()'s "update graphic bullet information" block, it turns out that the numbering picture bullet's height should be independent from the supplied bitmap, and only its aspect ratio should be respected. Change-Id: I1300aa0397a8098df2a3170af795fbba47fd2a9e Reviewed-on: https://gerrit.libreoffice.org/16500 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/dmapper/NumberingManager.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index 4d4dae12f7bb..8d93fb8aa0cc 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -859,6 +859,20 @@ void ListsManager::lcl_sprm( Sprm& rSprm )
case NS_ooxml::LN_CT_NumPicBullet_pict:
{
uno::Reference<drawing::XShape> xShape = m_rDMapper.PopPendingShape();
+
+ // Respect only the aspect ratio of the picture, not its size.
+ awt::Size aPrefSize = xShape->getSize();
+ // See SwDefBulletConfig::InitFont(), default height is 14.
+ const int nFontHeight = 14;
+ // Point -> mm100.
+ const int nHeight = nFontHeight * 35;
+ if (aPrefSize.Height * aPrefSize.Width != 0)
+ {
+ int nWidth = (nHeight * aPrefSize.Width) / aPrefSize.Height;
+ awt::Size aSize(nWidth, nHeight);
+ xShape->setSize(aSize);
+ }
+
m_pCurrentNumPicBullet->SetShape(xShape);
}
break;