summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2016-12-17 16:11:06 +0100
committerTamás Zolnai <tamas.zolnai@collabora.com>2016-12-17 19:19:42 +0000
commit08091afa13e6ad7fc8da6d45339bdc46b6e7dbd2 (patch)
tree5fcb3b1ccc75ea6eb828ebc1cf988758f749807a
parent7382c06de7a2c78055279e1a1e7c377f490cccd1 (diff)
tdf#104722: Wrong text alignment when text box is smaller than the text inside
The default TextHorizontalAlignment is block. Setting paragraph alignment (on UI) works when this text alignment property is set to block (otherwise has no effect). In general this works on this way, but the existing algorithm did not work in those cases when the text was bigger than the container shape. Change-Id: I02dba76f8e3033a465bb14dc826521966bb30987 Reviewed-on: https://gerrit.libreoffice.org/32123 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com> (cherry picked from commit 5694b4970e3af096130e172ac6968b10ed587a6f) Reviewed-on: https://gerrit.libreoffice.org/32126
-rw-r--r--svx/source/svdraw/svdotextdecomposition.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx
index a7211172784f..c567477a0f1a 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -43,6 +43,7 @@
#include <editeng/escapementitem.hxx>
#include <editeng/svxenum.hxx>
#include <editeng/flditem.hxx>
+#include <editeng/adjustitem.hxx>
#include <drawinglayer/primitive2d/texthierarchyprimitive2d.hxx>
#include <vcl/metaact.hxx>
#include <drawinglayer/primitive2d/wrongspellprimitive2d.hxx>
@@ -1022,7 +1023,14 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
// else the alignment is wanted.
if(SDRTEXTHORZADJUST_BLOCK == eHAdj)
{
- eHAdj = SDRTEXTHORZADJUST_CENTER;
+ SvxAdjust eAdjust = static_cast<const SvxAdjustItem&>(GetObjectItemSet().Get(EE_PARA_JUST)).GetAdjust();
+ switch(eAdjust)
+ {
+ case SVX_ADJUST_LEFT: eHAdj = SDRTEXTHORZADJUST_LEFT; break;
+ case SVX_ADJUST_RIGHT: eHAdj = SDRTEXTHORZADJUST_RIGHT; break;
+ case SVX_ADJUST_CENTER: eHAdj = SDRTEXTHORZADJUST_CENTER; break;
+ default: break;
+ }
}
}