[PATCH] user32: Don't draw a close button if it doesn't exist.

Zhiyi Zhang zzhang at codeweavers.com
Tue Oct 30 05:10:51 CDT 2018



On 2018/10/30 17:47, Alexandre Julliard wrote:
> Zhiyi Zhang <zzhang at codeweavers.com> writes:
>
>> @@ -892,10 +892,12 @@ static void  NC_DrawCaption( HDC  hdc, RECT *rect, HWND hwnd, DWORD  style,
>>          hSysMenu = GetSystemMenu(hwnd, FALSE);
>>          state = GetMenuState(hSysMenu, SC_CLOSE, MF_BYCOMMAND);
>>  
>> -        /* Draw a grayed close button if disabled or if SC_CLOSE is not there */
>> -        NC_DrawCloseButton (hwnd, hdc, FALSE,
>> -                            (state & (MF_DISABLED | MF_GRAYED)) || (state == 0xFFFFFFFF));
>> -        r.right -= GetSystemMetrics(SM_CYCAPTION) - 1;
>> +        /* Draw a grayed close button if disabled */
>> +        if (state != 0xFFFFFFFF)
>> +        {
>> +            NC_DrawCloseButton (hwnd, hdc, FALSE, state & (MF_DISABLED | MF_GRAYED));
>> +            r.right -= GetSystemMetrics(SM_CYCAPTION) - 1;
>> +        }
> This doesn't seem to match the Windows behavior. Why do you need this?
>
Right. The behavior seems inconsistent. Windows with SC_CLOSE removed from sysmenu still have a close button.
But task dialog doesn't have close button at all and this remove it. Please ignore this patch then, it's more of a UI
conformance and it's not fixing any bugs anyway.



More information about the wine-devel mailing list