diff options
Diffstat (limited to 'alf/alf.cpp')
| -rw-r--r-- | alf/alf.cpp | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/alf/alf.cpp b/alf/alf.cpp index b4d9052..ad4295d 100644 --- a/alf/alf.cpp +++ b/alf/alf.cpp @@ -43,16 +43,6 @@ ALF_UpdateFonts(HWND win) } void -ALF_ApplyFontsPriv(HWND win, ALFWindowPriv *priv) -{ - ALF_Layout_ApplyFonts(&priv->layout, win, &priv->fonts); - - if (priv->vtbl->applyfonts) { - priv->vtbl->applyfonts(priv->closure, win, &priv->fonts); - } -} - -void ALF_UpdateFontsPriv(HWND win, ALFWindowPriv *priv) { priv->fonts.dpi = ALF_Compat_GetDpiForWindow(win); @@ -81,13 +71,7 @@ ALF_UpdateFontsPriv(HWND win, ALFWindowPriv *priv) } priv->fonts.hMessageFont = CreateFontIndirect(&priv->fonts.lfMessageFont); - ALF_ApplyFontsPriv(win, priv); -} - -void -ALF_ApplyFonts(HWND win) -{ - SendMessage(win, ALF_WM_APPLYFONTS, 0, 0); + SendMessage(win, WM_SETFONT, (WPARAM)priv->fonts.hMessageFont, (LPARAM)1); } void @@ -164,9 +148,16 @@ ALF_DefWindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) return 0; } - if (msg == ALF_WM_APPLYFONTS) { - ALF_ApplyFontsPriv(hwnd, priv); - return 0; + if (msg == WM_SETFONT) { + priv->font = (HFONT)wparam; + if (LOWORD(lparam) != 0) + InvalidateRect(hwnd, NULL, TRUE); + + // fallthrough to layout, will propagate font to children + } + + if (msg == WM_GETFONT) { + return (LRESULT)priv->font; } if (msg == ALF_WM_PRETRANSLATEMSG) { |
