summaryrefslogtreecommitdiff
path: root/vcl/win/source/gdi/winlayout.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/win/source/gdi/winlayout.cxx')
-rw-r--r--vcl/win/source/gdi/winlayout.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index d326006bc6e0..b5ce57e51bfb 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -824,6 +824,8 @@ OUString VisAttrArrayToString(SCRIPT_VISATTR *pVisAttrs, int n)
bool UniscribeLayout::LayoutText( ImplLayoutArgs& rArgs )
{
+ msTheString = rArgs.mrStr;
+
// for a base layout only the context glyphs have to be dropped
// => when the whole string is involved there is no extra context
typedef std::vector<int> TIntVector;
@@ -1524,6 +1526,9 @@ int UniscribeLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos,
}
// update return values
+ if( (mnLayoutFlags & SalLayoutFlags::Vertical) &&
+ nCharPos != -1 )
+ aGlyphId |= GetVerticalFlags( msTheString[nCharPos] );
*(pGlyphs++) = aGlyphId;
if( pGlyphAdvances )
*(pGlyphAdvances++) = nGlyphWidth;