[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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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