diff --git a/win32ss/user/rtl/text.c b/win32ss/user/rtl/text.c index 061e49b6d5..e6afe6461b 100644 --- a/win32ss/user/rtl/text.c +++ b/win32ss/user/rtl/text.c @@ -1263,8 +1263,18 @@ INT WINAPI DrawTextExWorker( HDC hdc, if (flags & DT_SINGLELINE) { #ifdef __REACTOS__ - if (flags & DT_VCENTER) y = rect->top + - (rect->bottom - rect->top + (invert_y ? size.cy : -size.cy)) / 2; + if (flags & DT_VCENTER) + { + if (flags & DT_CALCRECT) + { + 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; + } + } else if (flags & DT_BOTTOM) y = rect->bottom + (invert_y ? 0 : -size.cy); #else