vcl/inc/win/salgdi.h | 3 +++ vcl/win/source/gdi/salgdi.cxx | 3 ++- vcl/win/source/gdi/salnativewidgets-luna.cxx | 10 ++++++---- 3 files changed, 11 insertions(+), 5 deletions(-)
New commits: commit 5b0f3cf836054da94968eddffc2647b50236739e Author: Jan Holesovsky <[email protected]> Date: Thu Mar 19 20:24:07 2015 +0100 opengl dr.memory: DC that contains selected object being deleted. Change-Id: I3cfb09eacfa129a92dace47fd26ccf6e5d1a6756 diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index 287daf4..e956e0f 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -155,6 +155,9 @@ private: /// DIBSection that we use for the GDI drawing, and later obtain. HBITMAP mhBitmap; + /// Return the previous bitmap to undo the SelectObject. + HBITMAP mhOrigBitmap; + /// DIBSection data. sal_uInt32 *mpData; diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx index fc74d05..ff74b0f 100644 --- a/vcl/win/source/gdi/salgdi.cxx +++ b/vcl/win/source/gdi/salgdi.cxx @@ -582,13 +582,14 @@ OpenGLCompatibleDC::OpenGLCompatibleDC(SalGraphics &rGraphics, int x, int y, int mhBitmap = WinSalVirtualDevice::ImplCreateVirDevBitmap(mhCompatibleDC, width, height, 32, reinterpret_cast<void **>(&mpData)); - SelectObject(mhCompatibleDC, mhBitmap); + mhOrigBitmap = (HBITMAP) SelectObject(mhCompatibleDC, mhBitmap); } OpenGLCompatibleDC::~OpenGLCompatibleDC() { if (mpImpl) { + SelectObject(mhCompatibleDC, mhOrigBitmap); DeleteObject(mhBitmap); DeleteDC(mhCompatibleDC); } commit a175977e1eb7fe63b2314dcfb3944e87889af455 Author: Jan Holesovsky <[email protected]> Date: Thu Mar 19 20:11:31 2015 +0100 dr.memory: Deleting a drawing object that is selected into DC. Change-Id: I2b04152896cdd231cc9be4ab008bc57a65c840da diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx index 9b690db..aedbf89 100644 --- a/vcl/win/source/gdi/salnativewidgets-luna.cxx +++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx @@ -475,12 +475,13 @@ static void impl_drawAeroToolbar( HDC hDC, RECT rc, bool bHorizontal ) // and a darker horizontal line under that HPEN hpen = CreatePen( PS_SOLID, 1, RGB( 0xb0, 0xb0, 0xb0 ) ); - SelectObject( hDC, hpen ); + HPEN hOrigPen = (HPEN) SelectObject(hDC, hpen); MoveToEx( hDC, rc.left, gradient_bottom, NULL ); LineTo( hDC, rc.right, gradient_bottom ); - DeleteObject( hpen ); + SelectObject(hDC, hOrigPen); + DeleteObject(hpen); } else { @@ -500,12 +501,13 @@ static void impl_drawAeroToolbar( HDC hDC, RECT rc, bool bHorizontal ) from_y = to_y = rc.top; HPEN hpen = CreatePen( PS_SOLID, 1, RGB( 0xb0, 0xb0, 0xb0 ) ); - SelectObject( hDC, hpen ); + HPEN hOrigPen = (HPEN) SelectObject(hDC, hpen); MoveToEx( hDC, from_x, from_y, NULL ); LineTo( hDC, to_x, to_y ); - DeleteObject( hpen ); + SelectObject(hDC, hOrigPen); + DeleteObject(hpen); } } } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
