aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <unknown>2005-07-22 13:24:40 +0000
committernyamatongwe <unknown>2005-07-22 13:24:40 +0000
commitf919cc6c0dd6bbb114256f4d80a4205ef8c63122 (patch)
tree3ebe7054af4b6e7f439dfb607d450a0eaedd3f0e
parent2065f65ab75293447f095492abad1990d0978527 (diff)
downloadscintilla-mirror-f919cc6c0dd6bbb114256f4d80a4205ef8c63122.tar.gz
Ensure DCs are emptied of non-stock, non-default objects before they are
released to keep BoundsChecker happy.
-rw-r--r--win32/PlatWin.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx
index c902104fd..c59ac388b 100644
--- a/win32/PlatWin.cxx
+++ b/win32/PlatWin.cxx
@@ -1543,7 +1543,7 @@ void ListBoxX::Paint(HDC hDC) {
Point extent = GetClientExtent();
HBITMAP hBitmap = ::CreateCompatibleBitmap(hDC, extent.x, extent.y);
HDC bitmapDC = ::CreateCompatibleDC(hDC);
- SelectBitmap(bitmapDC, hBitmap);
+ HBITMAP hBitmapOld = SelectBitmap(bitmapDC, hBitmap);
// The list background is mainly erased during painting, but can be a small
// unpainted area when at the end of a non-integrally sized list with a
// vertical scroll bar
@@ -1552,6 +1552,9 @@ void ListBoxX::Paint(HDC hDC) {
// Paint the entire client area and vertical scrollbar
::SendMessage(lb, WM_PRINT, reinterpret_cast<WPARAM>(bitmapDC), PRF_CLIENT|PRF_NONCLIENT);
::BitBlt(hDC, 0, 0, extent.x, extent.y, bitmapDC, 0, 0, SRCCOPY);
+ // Select a stock brush to prevent warnings from BoundsChecker
+ ::SelectObject(bitmapDC, GetStockFont(WHITE_BRUSH));
+ SelectBitmap(bitmapDC, hBitmapOld);
::DeleteDC(bitmapDC);
::DeleteObject(hBitmap);
}