patch 8.1.1029: DirectWrite doesn't take 'linespace' into account
Problem: DirectWrite doesn't take 'linespace' into account.
Solution: Include 'linespace' in the position. (Ken Takata, closes #4137)
diff --git a/src/gui_dwrite.cpp b/src/gui_dwrite.cpp
index 17fa6e7..4a24a03 100644
--- a/src/gui_dwrite.cpp
+++ b/src/gui_dwrite.cpp
@@ -1031,7 +1031,7 @@
TextRenderer renderer(this);
TextRendererContext context = { color, FLOAT(cellWidth), 0.0f };
- textLayout->Draw(&context, &renderer, FLOAT(x), FLOAT(y) - 0.5f);
+ textLayout->Draw(&context, &renderer, FLOAT(x), FLOAT(y));
}
SafeRelease(&textLayout);
diff --git a/src/gui_w32.c b/src/gui_w32.c
index ead617a..e8336b5 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -6337,7 +6337,8 @@
{
/* Add one to "cells" for italics. */
DWriteContext_DrawText(s_dwc, unicodebuf, wlen,
- TEXT_X(col), TEXT_Y(row), FILL_X(cells + 1), FILL_Y(1),
+ TEXT_X(col), TEXT_Y(row),
+ FILL_X(cells + 1), FILL_Y(1) - p_linespace,
gui.char_width, gui.currFgColor,
foptions, pcliprect, unicodepdy);
}
diff --git a/src/version.c b/src/version.c
index cebd920..5cca930 100644
--- a/src/version.c
+++ b/src/version.c
@@ -780,6 +780,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1029,
+/**/
1028,
/**/
1027,