https://git.reactos.org/?p=reactos.git;a=commitdiff;h=efe4605177345910532d7…
commit efe4605177345910532d73bcd910318b45f8e63d
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Sun Jan 20 23:11:54 2019 +0900
Commit: GitHub <noreply(a)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(a)users.sourceforge.net)
+ * PROGRAMERS: Thomas Weidenmueller (w3seek(a)users.sourceforge.net)
+ * Katayama Hirofumi MZ (katayama.hirofumi.mz(a)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))