https://git.reactos.org/?p=reactos.git;a=commitdiff;h=efe4605177345910532d73...
commit efe4605177345910532d73bcd910318b45f8e63d Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Sun Jan 20 23:11:54 2019 +0900 Commit: GitHub noreply@github.com CommitDate: Sun Jan 20 23:11:54 2019 +0900
[WIN32SS][NTUSER] Fix caret position of Ghostscript (#1271)
CORE-13934, CORE-15656 --- win32ss/user/ntuser/caret.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/win32ss/user/ntuser/caret.c b/win32ss/user/ntuser/caret.c index a7549e752d..9ab590c0b8 100644 --- a/win32ss/user/ntuser/caret.c +++ b/win32ss/user/ntuser/caret.c @@ -3,7 +3,8 @@ * PROJECT: ReactOS Win32k subsystem * PURPOSE: Caret functions * FILE: win32ss/user/ntuser/caret.c - * PROGRAMER: Thomas Weidenmueller (w3seek@users.sourceforge.net) + * PROGRAMERS: Thomas Weidenmueller (w3seek@users.sourceforge.net) + * Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) */
#include <win32k.h> @@ -21,6 +22,7 @@ co_IntDrawCaret(PWND pWnd, PTHRDCARETINFO CaretInfo) { HDC hdc, hdcMem; HBITMAP hbmOld; + RECT rcClient; BOOL bDone = FALSE;
if (pWnd == NULL) @@ -29,7 +31,7 @@ co_IntDrawCaret(PWND pWnd, PTHRDCARETINFO CaretInfo) return; }
- hdc = UserGetDCEx(pWnd, 0, DCX_USESTYLE | DCX_WINDOW); + hdc = UserGetDCEx(pWnd, NULL, DCX_USESTYLE); if (!hdc) { ERR("GetDC failed\n"); @@ -41,6 +43,13 @@ co_IntDrawCaret(PWND pWnd, PTHRDCARETINFO CaretInfo) NtGdiSaveDC(hdc); }
+ IntGetClientRect(pWnd, &rcClient); + NtGdiIntersectClipRect(hdc, + rcClient.left, + rcClient.top, + rcClient.right, + rcClient.bottom); + if (CaretInfo->Bitmap) { if (!GreGetBitmapDimension(CaretInfo->Bitmap, &CaretInfo->Size))