From 95aae7353480cc5090afd4fefd27db1843e97d91 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Mon, 28 Dec 2009 13:31:56 +0100 Subject: Use correct text anchor for vertical text and when aligning or distributing (bzr r8922) --- src/libnrtype/Layout-TNG-OutIter.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/libnrtype') diff --git a/src/libnrtype/Layout-TNG-OutIter.cpp b/src/libnrtype/Layout-TNG-OutIter.cpp index f4e8e4031..0682e3570 100644 --- a/src/libnrtype/Layout-TNG-OutIter.cpp +++ b/src/libnrtype/Layout-TNG-OutIter.cpp @@ -227,7 +227,11 @@ boost::optional Layout::baselineAnchorPoint() const Geom::Point left_pt = this->characterAnchorPoint(pos); pos.thisEndOfLine(); Geom::Point right_pt = this->characterAnchorPoint(pos); - Geom::Point mid_pt = (left_pt + right_pt)/2; + + if (this->_blockProgression() == LEFT_TO_RIGHT || this->_blockProgression() == RIGHT_TO_LEFT) { + left_pt = Geom::Point(left_pt[Geom::Y], left_pt[Geom::X]); + right_pt = Geom::Point(right_pt[Geom::Y], right_pt[Geom::X]); + } switch (this->paragraphAlignment(pos)) { case LEFT: @@ -235,7 +239,7 @@ boost::optional Layout::baselineAnchorPoint() const return left_pt; break; case CENTER: - return mid_pt; + return (left_pt + right_pt)/2; // middle point break; case RIGHT: return right_pt; -- cgit v1.2.3