Alexandre Julliard : winex11: Avoid creating a DC when not necessary.
Alexandre Julliard
julliard at winehq.org
Mon Oct 18 13:36:52 CDT 2010
Module: wine
Branch: master
Commit: 94e65bae5421be51559c1c12f142b5fc26648094
URL: http://source.winehq.org/git/wine.git/?a=commit;h=94e65bae5421be51559c1c12f142b5fc26648094
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Oct 18 12:11:17 2010 +0200
winex11: Avoid creating a DC when not necessary.
---
dlls/winex11.drv/mouse.c | 19 +++++++++----------
1 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index b3e5fcf..0b87c44 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -830,19 +830,13 @@ done:
static Cursor create_cursor( HANDLE handle )
{
Cursor cursor = 0;
- HDC hdc;
ICONINFOEXW info;
BITMAP bm;
if (!handle) return get_empty_cursor();
- if (!(hdc = CreateCompatibleDC( 0 ))) return 0;
info.cbSize = sizeof(info);
- if (!GetIconInfoExW( handle, &info ))
- {
- DeleteDC( hdc );
- return 0;
- }
+ if (!GetIconInfoExW( handle, &info )) return 0;
GetObjectW( info.hbmMask, sizeof(bm), &bm );
if (!info.hbmColor) bm.bmHeight /= 2;
@@ -856,11 +850,17 @@ static Cursor create_cursor( HANDLE handle )
if (info.hbmColor)
{
+ HDC hdc = CreateCompatibleDC( 0 );
+ if (hdc)
+ {
#ifdef SONAME_LIBXCURSOR
- if (pXcursorImagesLoadCursor) cursor = create_xcursor_cursor( hdc, &info, handle, bm.bmWidth, bm.bmHeight );
+ if (pXcursorImagesLoadCursor)
+ cursor = create_xcursor_cursor( hdc, &info, handle, bm.bmWidth, bm.bmHeight );
#endif
- if (!cursor) cursor = create_xlib_cursor( hdc, &info, bm.bmWidth, bm.bmHeight );
+ if (!cursor) cursor = create_xlib_cursor( hdc, &info, bm.bmWidth, bm.bmHeight );
+ }
DeleteObject( info.hbmColor );
+ DeleteDC( hdc );
}
else
{
@@ -872,7 +872,6 @@ static Cursor create_cursor( HANDLE handle )
}
DeleteObject( info.hbmMask );
- DeleteDC( hdc );
return cursor;
}
More information about the wine-cvs
mailing list