From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/dwrite/layout.c | 17 +++-------------- dlls/dwrite/tests/layout.c | 1 - 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c index 949b81baf67..f6684097234 100644 --- a/dlls/dwrite/layout.c +++ b/dlls/dwrite/layout.c @@ -690,22 +690,11 @@ static void layout_itemize_next_range(struct itemization_context *context) static void layout_itemize_set_run_end(struct itemization_context *context) { - /* Inline objects take precedence, skip level and script ranges accordingly. */ + /* Inline objects take precedence. */ if (context->range.value->object) { - UINT8 level = context->level.value; - UINT16 script = context->script.script; - context->run_end = context->range.end; - - while (context->level.end < context->run_end) - layout_itemize_next_level(context); - while (context->script.end < context->run_end) - layout_itemize_next_script(context); - - context->level.value = level; - context->script.script = script; } else { @@ -734,10 +723,10 @@ static bool layout_itemize_get_next(struct itemization_context *context) context->run_start = context->run_end; - if (context->run_end == context->level.end) + while (context->level.end <= context->run_end) layout_itemize_next_level(context); - if (context->run_end == context->script.end) + while (context->script.end <= context->run_end) layout_itemize_next_script(context); if (context->run_end == context->range.end) diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c index b7f3e1a5018..02a9cfe37aa 100644 --- a/dlls/dwrite/tests/layout.c +++ b/dlls/dwrite/tests/layout.c @@ -2681,7 +2681,6 @@ static void test_GetClusterMetrics(void) ok(metrics[1].length == 1, "Unexpected value %d.\n", metrics[1].length); ok(metrics[2].isRightToLeft == 0, "Unexpected value %d.\n", metrics[2].isRightToLeft); ok(metrics[2].length == 2, "Unexpected value %d.\n", metrics[2].length); - todo_wine ok(metrics[3].isRightToLeft == 1, "Unexpected value %d.\n", metrics[3].isRightToLeft); ok(metrics[3].length == 1, "Unexpected value %d.\n", metrics[3].length); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9974