Fixed a potential bug in the WM_SETFONT handling.
This commit is contained in:
parent
988c3a7dd8
commit
3c4021d7d6
|
@ -33,7 +33,7 @@ struct table {
|
||||||
|
|
||||||
static void drawItems(struct table *t, HDC dc)
|
static void drawItems(struct table *t, HDC dc)
|
||||||
{
|
{
|
||||||
HFONT prevfont;
|
HFONT thisfont, prevfont;
|
||||||
TEXTMETRICW tm;
|
TEXTMETRICW tm;
|
||||||
LONG y;
|
LONG y;
|
||||||
intptr_t i;
|
intptr_t i;
|
||||||
|
@ -41,7 +41,8 @@ static void drawItems(struct table *t, HDC dc)
|
||||||
|
|
||||||
if (GetClientRect(t->hwnd, &r) == 0)
|
if (GetClientRect(t->hwnd, &r) == 0)
|
||||||
abort();
|
abort();
|
||||||
prevfont = (HFONT) SelectObject(dc, t->font);
|
thisfont = t->font; // in case WM_SETFONT happens before we return
|
||||||
|
prevfont = (HFONT) SelectObject(dc, thisfont);
|
||||||
if (prevfont == NULL)
|
if (prevfont == NULL)
|
||||||
abort();
|
abort();
|
||||||
if (GetTextMetricsW(dc, &tm) == 0)
|
if (GetTextMetricsW(dc, &tm) == 0)
|
||||||
|
@ -68,7 +69,7 @@ static void drawItems(struct table *t, HDC dc)
|
||||||
TextOutW(dc, r.left, y, L"Item", 4);
|
TextOutW(dc, r.left, y, L"Item", 4);
|
||||||
y += tm.tmHeight;
|
y += tm.tmHeight;
|
||||||
}
|
}
|
||||||
if (SelectObject(dc, prevfont) != (HGDIOBJ) (t->font))
|
if (SelectObject(dc, prevfont) != (HGDIOBJ) (thisfont))
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue