comctl32/listbox: Actually draw themed frame.
Previously, LISTBOX_NCPaint() is called and themed frame is drawn. And then DefWindowProcW() is called with original clip region, overwriting the drawn themed frame. Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
76f87fe30c
commit
7fba4ebba3
|
@ -1186,7 +1186,7 @@ static LRESULT LISTBOX_Paint( LB_DESCR *descr, HDC hdc )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LISTBOX_NCPaint( LB_DESCR *descr, HRGN region )
|
static LRESULT LISTBOX_NCPaint( LB_DESCR *descr, HRGN region )
|
||||||
{
|
{
|
||||||
DWORD exstyle = GetWindowLongW( descr->self, GWL_EXSTYLE);
|
DWORD exstyle = GetWindowLongW( descr->self, GWL_EXSTYLE);
|
||||||
HTHEME theme = GetWindowTheme( descr->self );
|
HTHEME theme = GetWindowTheme( descr->self );
|
||||||
|
@ -1196,7 +1196,7 @@ static void LISTBOX_NCPaint( LB_DESCR *descr, HRGN region )
|
||||||
RECT r;
|
RECT r;
|
||||||
|
|
||||||
if (!theme || !(exstyle & WS_EX_CLIENTEDGE))
|
if (!theme || !(exstyle & WS_EX_CLIENTEDGE))
|
||||||
return;
|
return DefWindowProcW(descr->self, WM_NCPAINT, (WPARAM)region, 0);
|
||||||
|
|
||||||
cxEdge = GetSystemMetrics(SM_CXEDGE);
|
cxEdge = GetSystemMetrics(SM_CXEDGE);
|
||||||
cyEdge = GetSystemMetrics(SM_CYEDGE);
|
cyEdge = GetSystemMetrics(SM_CYEDGE);
|
||||||
|
@ -1217,6 +1217,11 @@ static void LISTBOX_NCPaint( LB_DESCR *descr, HRGN region )
|
||||||
DrawThemeParentBackground(descr->self, hdc, &r);
|
DrawThemeParentBackground(descr->self, hdc, &r);
|
||||||
DrawThemeBackground (theme, hdc, 0, 0, &r, 0);
|
DrawThemeBackground (theme, hdc, 0, 0, &r, 0);
|
||||||
ReleaseDC(descr->self, hdc);
|
ReleaseDC(descr->self, hdc);
|
||||||
|
|
||||||
|
/* Call default proc to get the scrollbars etc. also painted */
|
||||||
|
DefWindowProcW(descr->self, WM_NCPAINT, (WPARAM)cliprgn, 0);
|
||||||
|
DeleteObject(cliprgn);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
@ -2976,8 +2981,7 @@ static LRESULT CALLBACK LISTBOX_WindowProc( HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
case WM_NCPAINT:
|
case WM_NCPAINT:
|
||||||
LISTBOX_NCPaint( descr, (HRGN)wParam );
|
return LISTBOX_NCPaint( descr, (HRGN)wParam );
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
LISTBOX_UpdateSize( descr );
|
LISTBOX_UpdateSize( descr );
|
||||||
|
|
Loading…
Reference in New Issue