comctl32/listview: Only draw themed frame when WS_EX_CLIENTEDGE is present.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zhiyi Zhang 2021-03-04 16:47:37 +08:00 committed by Alexandre Julliard
parent 5ca79e66ad
commit c703c96a78
1 changed files with 5 additions and 5 deletions

View File

@ -10612,11 +10612,11 @@ static LRESULT LISTVIEW_Notify(LISTVIEW_INFO *infoPtr, NMHDR *lpnmhdr)
* [I] region : update region * [I] region : update region
* *
* RETURN: * RETURN:
* TRUE - frame was painted * 0 - frame was painted
* FALSE - call default window proc
*/ */
static BOOL LISTVIEW_NCPaint(const LISTVIEW_INFO *infoPtr, HRGN region) static LRESULT LISTVIEW_NCPaint(const LISTVIEW_INFO *infoPtr, HRGN region)
{ {
LONG exstyle = GetWindowLongW (infoPtr->hwndSelf, GWL_EXSTYLE);
HTHEME theme = GetWindowTheme (infoPtr->hwndSelf); HTHEME theme = GetWindowTheme (infoPtr->hwndSelf);
HDC dc; HDC dc;
RECT r; RECT r;
@ -10624,7 +10624,7 @@ static BOOL LISTVIEW_NCPaint(const LISTVIEW_INFO *infoPtr, HRGN region)
int cxEdge = GetSystemMetrics (SM_CXEDGE), int cxEdge = GetSystemMetrics (SM_CXEDGE),
cyEdge = GetSystemMetrics (SM_CYEDGE); cyEdge = GetSystemMetrics (SM_CYEDGE);
if (!theme) if (!theme || !(exstyle & WS_EX_CLIENTEDGE))
return DefWindowProcW (infoPtr->hwndSelf, WM_NCPAINT, (WPARAM)region, 0); return DefWindowProcW (infoPtr->hwndSelf, WM_NCPAINT, (WPARAM)region, 0);
GetWindowRect(infoPtr->hwndSelf, &r); GetWindowRect(infoPtr->hwndSelf, &r);
@ -10646,7 +10646,7 @@ static BOOL LISTVIEW_NCPaint(const LISTVIEW_INFO *infoPtr, HRGN region)
DefWindowProcW (infoPtr->hwndSelf, WM_NCPAINT, (WPARAM)cliprgn, 0); DefWindowProcW (infoPtr->hwndSelf, WM_NCPAINT, (WPARAM)cliprgn, 0);
DeleteObject(cliprgn); DeleteObject(cliprgn);
return FALSE; return 0;
} }
/*** /***