Module: wine Branch: master Commit: 85a69604deb42ea06ee829d08b0a7893e3b52f89 URL: http://source.winehq.org/git/wine.git/?a=commit;h=85a69604deb42ea06ee829d08b...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Oct 18 12:09:25 2010 +0200
winex11: Use GetIconInfoEx when creating cursors.
---
dlls/winex11.drv/mouse.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c index 485a50d..b3e5fcf 100644 --- a/dlls/winex11.drv/mouse.c +++ b/dlls/winex11.drv/mouse.c @@ -470,7 +470,7 @@ void X11DRV_send_mouse_input( HWND hwnd, DWORD flags, DWORD x, DWORD y, * * Use Xcursor to create a frame of an X cursor from a Windows one. */ -static XcursorImage *create_xcursor_frame( HDC hdc, ICONINFO *iinfo, HANDLE icon, +static XcursorImage *create_xcursor_frame( HDC hdc, const ICONINFOEXW *iinfo, HANDLE icon, HBITMAP hbmColor, unsigned char *color_bits, int color_size, HBITMAP hbmMask, unsigned char *mask_bits, int mask_size, int width, int height, int istep ) @@ -537,7 +537,7 @@ cleanup: * * Use Xcursor to create an X cursor from a Windows one. */ -static Cursor create_xcursor_cursor( HDC hdc, ICONINFO *iinfo, HANDLE icon, int width, int height ) +static Cursor create_xcursor_cursor( HDC hdc, const ICONINFOEXW *iinfo, HANDLE icon, int width, int height ) { unsigned char *color_bits, *mask_bits; HBITMAP hbmColor = 0, hbmMask = 0; @@ -701,7 +701,7 @@ done: * * Create an X cursor from a Windows one. */ -static Cursor create_xlib_cursor( HDC hdc, ICONINFO *icon, int width, int height ) +static Cursor create_xlib_cursor( HDC hdc, const ICONINFOEXW *icon, int width, int height ) { XColor fg, bg; Cursor cursor = None; @@ -831,13 +831,14 @@ static Cursor create_cursor( HANDLE handle ) { Cursor cursor = 0; HDC hdc; - ICONINFO info; + ICONINFOEXW info; BITMAP bm;
if (!handle) return get_empty_cursor();
if (!(hdc = CreateCompatibleDC( 0 ))) return 0; - if (!GetIconInfo( handle, &info )) + info.cbSize = sizeof(info); + if (!GetIconInfoExW( handle, &info )) { DeleteDC( hdc ); return 0;