Never delete the font object received by WM_SETFONT.
This commit is contained in:
parent
198f1e2f3e
commit
fcc148b283
|
@ -120,6 +120,7 @@ typedef struct
|
||||||
DWORD dwExtStyle;
|
DWORD dwExtStyle;
|
||||||
INT selected; /* index of selected item */
|
INT selected; /* index of selected item */
|
||||||
DWORD flags; /* WINE internal flags */
|
DWORD flags; /* WINE internal flags */
|
||||||
|
HFONT hDefaultFont;
|
||||||
HFONT font;
|
HFONT font;
|
||||||
INT nb_items; /* Number of items */
|
INT nb_items; /* Number of items */
|
||||||
BOOL bUnicode; /* TRUE if this window is Unicode */
|
BOOL bUnicode; /* TRUE if this window is Unicode */
|
||||||
|
@ -1209,7 +1210,7 @@ COMBOEX_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (!infoPtr->font) {
|
if (!infoPtr->font) {
|
||||||
SystemParametersInfoA (SPI_GETICONTITLELOGFONT, sizeof(mylogfont),
|
SystemParametersInfoA (SPI_GETICONTITLELOGFONT, sizeof(mylogfont),
|
||||||
&mylogfont, 0);
|
&mylogfont, 0);
|
||||||
infoPtr->font = CreateFontIndirectA (&mylogfont);
|
infoPtr->font = infoPtr->hDefaultFont = CreateFontIndirectA (&mylogfont);
|
||||||
}
|
}
|
||||||
SendMessageW (infoPtr->hwndCombo, WM_SETFONT, (WPARAM)infoPtr->font, 0);
|
SendMessageW (infoPtr->hwndCombo, WM_SETFONT, (WPARAM)infoPtr->font, 0);
|
||||||
if (infoPtr->hwndEdit) {
|
if (infoPtr->hwndEdit) {
|
||||||
|
@ -1750,7 +1751,7 @@ COMBOEX_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteObject (infoPtr->font);
|
if (infoPtr->hDefaultFont) DeleteObject (infoPtr->hDefaultFont);
|
||||||
|
|
||||||
/* free comboex info data */
|
/* free comboex info data */
|
||||||
COMCTL32_Free (infoPtr);
|
COMCTL32_Free (infoPtr);
|
||||||
|
|
|
@ -200,6 +200,7 @@ typedef struct
|
||||||
HWND hwndSelf; /* handle of REBAR window itself */
|
HWND hwndSelf; /* handle of REBAR window itself */
|
||||||
HWND hwndToolTip; /* handle to the tool tip control */
|
HWND hwndToolTip; /* handle to the tool tip control */
|
||||||
HWND hwndNotify; /* notification window (parent) */
|
HWND hwndNotify; /* notification window (parent) */
|
||||||
|
HFONT hDefaultFont;
|
||||||
HFONT hFont; /* handle to the rebar's font */
|
HFONT hFont; /* handle to the rebar's font */
|
||||||
SIZE imageSize; /* image size (image list) */
|
SIZE imageSize; /* image size (image list) */
|
||||||
DWORD dwStyle; /* window style */
|
DWORD dwStyle; /* window style */
|
||||||
|
@ -3624,7 +3625,7 @@ REBAR_Destroy (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
||||||
DeleteObject (infoPtr->hcurHorz);
|
DeleteObject (infoPtr->hcurHorz);
|
||||||
DeleteObject (infoPtr->hcurVert);
|
DeleteObject (infoPtr->hcurVert);
|
||||||
DeleteObject (infoPtr->hcurDrag);
|
DeleteObject (infoPtr->hcurDrag);
|
||||||
DeleteObject (infoPtr->hFont);
|
if(infoPtr->hDefaultFont) DeleteObject (infoPtr->hDefaultFont);
|
||||||
SetWindowLongA (infoPtr->hwndSelf, 0, 0);
|
SetWindowLongA (infoPtr->hwndSelf, 0, 0);
|
||||||
|
|
||||||
/* free rebar info data */
|
/* free rebar info data */
|
||||||
|
@ -3834,7 +3835,7 @@ REBAR_NCCreate (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
tfont = CreateFontIndirectA (&ncm.lfCaptionFont);
|
tfont = CreateFontIndirectA (&ncm.lfCaptionFont);
|
||||||
if (tfont) {
|
if (tfont) {
|
||||||
infoPtr->hFont = tfont;
|
infoPtr->hFont = infoPtr->hDefaultFont = tfont;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* native does:
|
/* native does:
|
||||||
|
|
|
@ -95,6 +95,7 @@ typedef struct
|
||||||
INT nButtonDown;
|
INT nButtonDown;
|
||||||
INT nOldHit;
|
INT nOldHit;
|
||||||
INT nHotItem; /* index of the "hot" item */
|
INT nHotItem; /* index of the "hot" item */
|
||||||
|
HFONT hDefaultFont;
|
||||||
HFONT hFont; /* text font */
|
HFONT hFont; /* text font */
|
||||||
HIMAGELIST himlInt; /* image list created internally */
|
HIMAGELIST himlInt; /* image list created internally */
|
||||||
HIMAGELIST himlDef; /* default image list */
|
HIMAGELIST himlDef; /* default image list */
|
||||||
|
@ -4048,7 +4049,7 @@ TOOLBAR_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
infoPtr->hwndSelf = hwnd;
|
infoPtr->hwndSelf = hwnd;
|
||||||
|
|
||||||
SystemParametersInfoA (SPI_GETICONTITLELOGFONT, 0, &logFont, 0);
|
SystemParametersInfoA (SPI_GETICONTITLELOGFONT, 0, &logFont, 0);
|
||||||
infoPtr->hFont = CreateFontIndirectA (&logFont);
|
infoPtr->hFont = infoPtr->hDefaultFont = CreateFontIndirectA (&logFont);
|
||||||
|
|
||||||
if (dwStyle & TBSTYLE_TOOLTIPS) {
|
if (dwStyle & TBSTYLE_TOOLTIPS) {
|
||||||
/* Create tooltip control */
|
/* Create tooltip control */
|
||||||
|
@ -4106,7 +4107,7 @@ TOOLBAR_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
/* delete default font */
|
/* delete default font */
|
||||||
if (infoPtr->hFont)
|
if (infoPtr->hFont)
|
||||||
DeleteObject (infoPtr->hFont);
|
DeleteObject (infoPtr->hDefaultFont);
|
||||||
|
|
||||||
/* free toolbar info data */
|
/* free toolbar info data */
|
||||||
COMCTL32_Free (infoPtr);
|
COMCTL32_Free (infoPtr);
|
||||||
|
|
Loading…
Reference in New Issue