Fix font handle leak after closing the 'choose font' dialog (based on
orginal patch by 'Christoph at ApiViewer.de')
This commit is contained in:
parent
803146d220
commit
c6593b04b9
|
@ -2246,9 +2246,11 @@ static LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM
|
||||||
|
|
||||||
if (ChooseFont(&chFont)) {
|
if (ChooseFont(&chFont)) {
|
||||||
HWND childWnd;
|
HWND childWnd;
|
||||||
|
HFONT hFontOld;
|
||||||
|
|
||||||
|
DeleteObject(Globals.hfont);
|
||||||
Globals.hfont = CreateFontIndirect(&lFont);
|
Globals.hfont = CreateFontIndirect(&lFont);
|
||||||
SelectFont(hdc, Globals.hfont);
|
hFontOld = SelectFont(hdc, Globals.hfont);
|
||||||
GetTextExtentPoint32(hdc, sSpace, 1, &Globals.spaceSize);
|
GetTextExtentPoint32(hdc, sSpace, 1, &Globals.spaceSize);
|
||||||
|
|
||||||
/* change font in all open child windows */
|
/* change font in all open child windows */
|
||||||
|
@ -2261,6 +2263,8 @@ static LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM
|
||||||
InvalidateRect(child->left.hwnd, NULL, TRUE);
|
InvalidateRect(child->left.hwnd, NULL, TRUE);
|
||||||
InvalidateRect(child->right.hwnd, NULL, TRUE);
|
InvalidateRect(child->right.hwnd, NULL, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SelectFont(hdc, hFontOld);
|
||||||
}
|
}
|
||||||
else if (CommDlgExtendedError()) {
|
else if (CommDlgExtendedError()) {
|
||||||
LoadString(Globals.hInstance, IDS_FONT_SEL_DLG_NAME, dlg_name, BUFFER_LEN);
|
LoadString(Globals.hInstance, IDS_FONT_SEL_DLG_NAME, dlg_name, BUFFER_LEN);
|
||||||
|
@ -4756,6 +4760,7 @@ static void ExitInstance(void)
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DeleteObject(Globals.hfont);
|
||||||
ImageList_Destroy(Globals.himl);
|
ImageList_Destroy(Globals.himl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue