[WIN32SS][NTUSER] Fix caret position of Ghostscript (#1271)

CORE-13934, CORE-15656
This commit is contained in:
Katayama Hirofumi MZ
2019-01-20 23:11:54 +09:00
committed by GitHub
parent 1b92120fc9
commit efe4605177

View File

@@ -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))