Fix Notepad++ crash on dark mode while starting up

Fix #9961
This commit is contained in:
Don Ho 2021-06-12 01:49:05 +02:00
parent 7e139e1ba2
commit 2f51902e9c

View File

@ -123,12 +123,11 @@ void ToolBarIcons::reInit(int size)
_iconListVector[HLIST_DEFAULT2].addIcon(i._hIcon); _iconListVector[HLIST_DEFAULT2].addIcon(i._hIcon);
_iconListVector[HLIST_DISABLE2].addIcon(i._hIcon); _iconListVector[HLIST_DISABLE2].addIcon(i._hIcon);
HICON hIcon = nullptr;
if (i._hIcon_DM) if (i._hIcon_DM)
{ {
_iconListVector[HLIST_DEFAULT_DM].addIcon(i._hIcon_DM); hIcon = i._hIcon_DM;
_iconListVector[HLIST_DISABLE_DM].addIcon(i._hIcon_DM);
_iconListVector[HLIST_DEFAULT_DM2].addIcon(i._hIcon_DM);
_iconListVector[HLIST_DISABLE_DM2].addIcon(i._hIcon_DM);
} }
else else
{ {
@ -138,8 +137,14 @@ void ToolBarIcons::reInit(int size)
HDC dcScreen = ::GetDC(NULL); HDC dcScreen = ::GetDC(NULL);
BITMAP bmp; BITMAP bmp;
::GetObject(iconinfoSrc.hbmColor, sizeof(BITMAP), &bmp); int nbByteBmp = ::GetObject(iconinfoSrc.hbmColor, sizeof(BITMAP), &bmp);
if (!nbByteBmp)
{
hIcon = i._hIcon;
}
else
{
BITMAPINFOHEADER bi = { 0 }; BITMAPINFOHEADER bi = { 0 };
bi.biSize = sizeof(BITMAPINFOHEADER); bi.biSize = sizeof(BITMAPINFOHEADER);
@ -192,11 +197,12 @@ void ToolBarIcons::reInit(int size)
iconinfoDest.hbmColor = hBmpNew; iconinfoDest.hbmColor = hBmpNew;
iconinfoDest.hbmMask = iconinfoSrc.hbmMask; iconinfoDest.hbmMask = iconinfoSrc.hbmMask;
HICON hIcon = ::CreateIconIndirect(&iconinfoDest); hIcon = ::CreateIconIndirect(&iconinfoDest);
::DeleteObject(hBmpNew); ::DeleteObject(hBmpNew);
::DeleteObject(iconinfoSrc.hbmColor); ::DeleteObject(iconinfoSrc.hbmColor);
::DeleteObject(iconinfoSrc.hbmMask); ::DeleteObject(iconinfoSrc.hbmMask);
}
_iconListVector[HLIST_DEFAULT_DM].addIcon(hIcon); _iconListVector[HLIST_DEFAULT_DM].addIcon(hIcon);
_iconListVector[HLIST_DISABLE_DM].addIcon(hIcon); _iconListVector[HLIST_DISABLE_DM].addIcon(hIcon);