Nikolay Sivov : dwrite: Set leading text alignment for default trimming sign.

Alexandre Julliard julliard at winehq.org
Thu Aug 24 14:18:26 CDT 2017


Module: wine
Branch: master
Commit: cc49c40f05a600327b80711f6f80844608dde366
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cc49c40f05a600327b80711f6f80844608dde366

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Aug 24 14:25:07 2017 +0300

dwrite: Set leading text alignment for default trimming sign.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dwrite/layout.c       |  2 ++
 dlls/dwrite/tests/layout.c | 20 ++++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index ff09c78..4e901fa 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -5148,6 +5148,8 @@ HRESULT create_trimmingsign(IDWriteFactory5 *factory, IDWriteTextFormat *format,
 
     IDWriteTextLayout_SetWordWrapping(This->layout, DWRITE_WORD_WRAPPING_NO_WRAP);
     IDWriteTextLayout_SetParagraphAlignment(This->layout, DWRITE_PARAGRAPH_ALIGNMENT_NEAR);
+    IDWriteTextLayout_SetTextAlignment(This->layout, DWRITE_TEXT_ALIGNMENT_LEADING);
+
     *sign = &This->IDWriteInlineObject_iface;
 
     return S_OK;
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index c03d684..8ca50f0 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -1237,6 +1237,7 @@ static void test_CreateEllipsisTrimmingSign(void)
     static const WCHAR engbW[] = {'e','n','-','G','B',0};
     DWRITE_INLINE_OBJECT_METRICS metrics;
     DWRITE_BREAK_CONDITION before, after;
+    struct renderer_context ctxt;
     IDWriteTextFormat *format;
     IDWriteInlineObject *sign;
     IDWriteFactory *factory;
@@ -1300,6 +1301,25 @@ if (0) {/* crashes on native */
     ok(hr == S_OK, "Failed to draw trimming sign, hr %#x.\n", hr);
     ok_sequence(sequences, RENDERER_ID, drawellipsis_seq, "ellipsis sign draw with effect test", FALSE);
 
+    memset(&ctxt, 0, sizeof(ctxt));
+    hr = IDWriteInlineObject_Draw(sign, &ctxt, &testrenderer, 123.0f, 456.0f, FALSE, FALSE, NULL);
+    ok(hr == S_OK, "Failed to draw trimming sign, hr %#x.\n", hr);
+    ok(ctxt.originX == 123.0f && ctxt.originY == 456.0f, "Unexpected drawing origin\n");
+
+    IDWriteInlineObject_Release(sign);
+
+    /* Centered format */
+    hr = IDWriteTextFormat_SetTextAlignment(format, DWRITE_TEXT_ALIGNMENT_CENTER);
+    ok(hr == S_OK, "Failed to set text alignment, hr %#x.\n", hr);
+
+    hr = IDWriteFactory_CreateEllipsisTrimmingSign(factory, format, &sign);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    memset(&ctxt, 0, sizeof(ctxt));
+    hr = IDWriteInlineObject_Draw(sign, &ctxt, &testrenderer, 123.0f, 456.0f, FALSE, FALSE, NULL);
+    ok(hr == S_OK, "Failed to draw trimming sign, hr %#x.\n", hr);
+    ok(ctxt.originX == 123.0f && ctxt.originY == 456.0f, "Unexpected drawing origin\n");
+
     IDWriteInlineObject_Release(sign);
 
     /* non-orthogonal flow/reading combination */




More information about the wine-cvs mailing list