https://git.reactos.org/?p=reactos.git;a=commitdiff;h=11b7619a71d9bfc51ae41…
commit 11b7619a71d9bfc51ae41fcd22fab4fdfa3d96f1
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Thu Aug 16 02:50:19 2018 +0900
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Wed Aug 15 19:50:19 2018 +0200
[WIN32SS] Fix DrawText wrt DT_CALCRECT | DT_VCENTER (#745)
The test program:
https://jira.reactos.org/secure/attachment/47925/TnB3.zip
CORE-14896
---
win32ss/user/rtl/text.c | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/win32ss/user/rtl/text.c b/win32ss/user/rtl/text.c
index 9ab726c80a..d723c55f57 100644
--- a/win32ss/user/rtl/text.c
+++ b/win32ss/user/rtl/text.c
@@ -1148,26 +1148,27 @@ INT WINAPI DrawTextExWorker( HDC hdc,
if (flags & DT_SINGLELINE)
{
- if (flags & DT_VCENTER)
#ifdef __REACTOS__
+ if (flags & DT_VCENTER)
+ {
+ if (flags & DT_CALCRECT)
{
- if (((rect->bottom - rect->top) < (invert_y ? -size.cy :
size.cy)) && (flags & DT_CALCRECT))
- {
- y = rect->top + (invert_y ? -size.cy : size.cy);
- }
- else
- {
- y = rect->top + (rect->bottom - rect->top + (invert_y ?
size.cy : -size.cy)) / 2;
-#else
- y = rect->top + (rect->bottom - rect->top) / 2 + (invert_y ?
(size.cy / 2) : (-size.cy / 2));
-#endif
-#ifdef __REACTOS__
- }
+ if (rect->bottom - rect->top < size.cy / 2)
+ y = rect->top + (invert_y ? size.cy : -size.cy) / 2;
+ }
+ else
+ {
+ y = rect->top + (rect->bottom - rect->top + (invert_y ? size.cy
: -size.cy)) / 2;
}
-#endif
- else if (flags & DT_BOTTOM)
- y = rect->bottom + (invert_y ? 0 : -size.cy);
}
+ else if (flags & DT_BOTTOM)
+ y = rect->bottom + (invert_y ? 0 : -size.cy);
+#else
+ if (flags & DT_VCENTER) y = rect->top +
+ (rect->bottom - rect->top) / 2 - size.cy / 2;
+ else if (flags & DT_BOTTOM) y = rect->bottom - size.cy;
+#endif
+ }
if (!(flags & DT_CALCRECT))
{