Module: wine Branch: master Commit: 096df5f5baa11d8417309c5dc4a776b4c8bb89db URL: http://source.winehq.org/git/wine.git/?a=commit;h=096df5f5baa11d8417309c5dc4...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Sep 11 12:37:14 2017 +0300
dwrite: Support DWRITE_TRIMMING_GRANULARITY_WORD mode.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dwrite/layout.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c index 9109107..4b67ce0 100644 --- a/dlls/dwrite/layout.c +++ b/dlls/dwrite/layout.c @@ -1879,7 +1879,15 @@ static void layout_add_line(struct dwrite_textlayout *layout, UINT32 first_clust while (last_cluster > first_cluster) { if (trimmed_width + sign_metrics.width <= layout->metrics.layoutWidth) break; - trimmed_width -= layout->clustermetrics[last_cluster--].width; + if (layout->format.trimming.granularity == DWRITE_TRIMMING_GRANULARITY_CHARACTER) + trimmed_width -= layout->clustermetrics[last_cluster--].width; + else { + while (last_cluster > first_cluster) { + trimmed_width -= layout->clustermetrics[last_cluster].width; + if (layout->clustermetrics[last_cluster--].canWrapLineAfter) + break; + } + } } append_trimming_run = TRUE; }