X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2dace059ee7aefeea0f2b843f1808b117f112795..67e49a98bbba6793cf1e344477bee9e46d4d5c71:/src/msw/gdiimage.cpp?ds=inline diff --git a/src/msw/gdiimage.cpp b/src/msw/gdiimage.cpp index d97e57e0fa..64ad5b730c 100644 --- a/src/msw/gdiimage.cpp +++ b/src/msw/gdiimage.cpp @@ -493,11 +493,17 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, { HICON hicon; + // do we need the icon of the specific size or would any icon do? + bool hasSize = desiredWidth != -1 || desiredHeight != -1; + + wxASSERT_MSG( !hasSize || (desiredWidth != -1 && desiredHeight != -1), + _T("width and height should be either both -1 or not") ); + // try to load the icon from this program first to allow overriding the // standard icons (although why one would want to do it considering that // we already have wxApp::GetStdIcon() is unclear) #if defined(__WIN32__) && !defined(__SC__) - if ( desiredWidth != -1 && desiredHeight != -1 ) + if ( hasSize ) { hicon = (HICON)::LoadImage(wxGetInstance(), name, IMAGE_ICON, desiredWidth, desiredHeight, @@ -510,7 +516,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, } // next check if it's not a standard icon - if ( !hicon ) + if ( !hicon && !hasSize ) { static const struct { @@ -528,11 +534,7 @@ bool wxICOResourceHandler::LoadIcon(wxIcon *icon, { if ( name == stdIcons[nIcon].name ) { - hicon = (HICON)::LoadImage((HINSTANCE)NULL, - stdIcons[nIcon].id, - IMAGE_ICON, - desiredWidth, desiredHeight, - LR_DEFAULTCOLOR); + hicon = ::LoadIcon((HINSTANCE)NULL, stdIcons[nIcon].id); } } }