summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-06-26 09:02:31 +0200
committerAndras Timar <andras.timar@collabora.com>2015-08-06 12:52:28 +0200
commit1a210bff4bb1d7b822392dbab59006682de19cce (patch)
treed4024724f5f05e0583d0845e39bc5bbb614765e0 /writerfilter
parenta4b247f2ed15d5e6acae4dc325857cf1f328a0da (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. (cherry picked from commit eab89b7f024a8c86decdcb3362c40c40a7df37df) Change-Id: I1300aa0397a8098df2a3170af795fbba47fd2a9e Reviewed-on: https://gerrit.libreoffice.org/16502 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
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 481dbdf317ea..b19b8618b2f7 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -887,6 +887,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;