diff options
-rw-r--r-- | win32/PlatWin.cxx | 4 | ||||
-rw-r--r-- | win32/PlatWin.h | 2 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 4 |
3 files changed, 7 insertions, 3 deletions
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 4d31e5af5..71e31e59d 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -49,6 +49,8 @@ #include "DBCS.h" #include "FontQuality.h" +#include "PlatWin.h" + #ifndef SPI_GETFONTSMOOTHINGCONTRAST #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C #endif @@ -61,7 +63,7 @@ namespace Scintilla { UINT CodePageFromCharSet(DWORD characterSet, UINT documentCodePage); -static RECT RectFromPRectangle(PRectangle prc) { +RECT RectFromPRectangle(PRectangle prc) { RECT rc = {static_cast<LONG>(prc.left), static_cast<LONG>(prc.top), static_cast<LONG>(prc.right), static_cast<LONG>(prc.bottom)}; return rc; diff --git a/win32/PlatWin.h b/win32/PlatWin.h index eff1fea01..bff73ae70 100644 --- a/win32/PlatWin.h +++ b/win32/PlatWin.h @@ -13,6 +13,8 @@ namespace Scintilla { extern void Platform_Initialise(void *hInstance); extern void Platform_Finalise(bool fromDllMain); +RECT RectFromPRectangle(PRectangle prc); + #if defined(USE_D2D) extern bool LoadD2D(); extern ID2D1Factory *pD2DFactory; diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 34302b3fc..4335c1164 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -702,8 +702,8 @@ bool BoundsContains(PRectangle rcBounds, HRGN hRgnBounds, PRectangle rcCheck) { contains = false; } else if (hRgnBounds) { // In bounding rectangle so check more accurately using region - HRGN hRgnCheck = ::CreateRectRgn(static_cast<int>(rcCheck.left), static_cast<int>(rcCheck.top), - static_cast<int>(rcCheck.right), static_cast<int>(rcCheck.bottom)); + const RECT rcw = RectFromPRectangle(rcCheck); + HRGN hRgnCheck = ::CreateRectRgnIndirect(&rcw); if (hRgnCheck) { HRGN hRgnDifference = ::CreateRectRgn(0, 0, 0, 0); if (hRgnDifference) { |