Module: wine Branch: master Commit: 649e4640d154d07eb25dadb28ab05dd9081d530f URL: http://source.winehq.org/git/wine.git/?a=commit;h=649e4640d154d07eb25dadb28a...
Author: Nikolay Sivov bunglehead@gmail.com Date: Mon May 18 19:52:50 2009 +0400
comctl32/comboex: Use cached colors for ComboEx.
---
dlls/comctl32/comboex.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/comctl32/comboex.c b/dlls/comctl32/comboex.c index 25c2dbf..04464fd 100644 --- a/dlls/comctl32/comboex.c +++ b/dlls/comctl32/comboex.c @@ -1535,11 +1535,11 @@ static LRESULT COMBOEX_DrawItem (COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *di
/* now draw the text */ if (!IsWindowVisible (infoPtr->hwndEdit)) { - nbkc = GetSysColor ((dis->itemState & ODS_SELECTED) ? - COLOR_HIGHLIGHT : COLOR_WINDOW); + nbkc = (dis->itemState & ODS_SELECTED) ? + comctl32_color.clrHighlight : comctl32_color.clrWindow; bkc = SetBkColor (dis->hDC, nbkc); - ntxc = GetSysColor ((dis->itemState & ODS_SELECTED) ? - COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT); + ntxc = (dis->itemState & ODS_SELECTED) ? + comctl32_color.clrHighlightText : comctl32_color.clrWindowText; txc = SetTextColor (dis->hDC, ntxc); x = xbase + xioff; y = dis->rcItem.top + @@ -1750,7 +1750,7 @@ COMBOEX_EditWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) * The following was determined by traces of the native */ hDC = (HDC) wParam; - obkc = SetBkColor (hDC, GetSysColor (COLOR_WINDOW)); + obkc = SetBkColor (hDC, comctl32_color.clrWindow); GetClientRect (hwnd, &rect); TRACE("erasing (%s)\n", wine_dbgstr_rect(&rect)); ExtTextOutW (hDC, 0, 0, ETO_OPAQUE, &rect, 0, 0, 0); @@ -1953,7 +1953,7 @@ COMBOEX_ComboWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) * The following was determined by traces of the native */ hDC = (HDC) wParam; - obkc = SetBkColor (hDC, GetSysColor (COLOR_WINDOW)); + obkc = SetBkColor (hDC, comctl32_color.clrWindow); GetClientRect (hwnd, &rect); TRACE("erasing (%s)\n", wine_dbgstr_rect(&rect)); ExtTextOutW (hDC, 0, 0, ETO_OPAQUE, &rect, 0, 0, 0); @@ -2320,6 +2320,10 @@ COMBOEX_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) SetFocus(infoPtr->hwndCombo); return 0;
+ case WM_SYSCOLORCHANGE: + COMCTL32_RefreshSysColors(); + return 0; + default: if ((uMsg >= WM_USER) && (uMsg < WM_APP) && !COMCTL32_IsReflectedMessage(uMsg)) ERR("unknown msg %04x wp=%08lx lp=%08lx\n",uMsg,wParam,lParam);