[WIN32SS][NTUSER] Sunken menu item (#981)

CORE-15226
This commit is contained in:
Katayama Hirofumi MZ 2018-10-27 04:20:09 +09:00 committed by GitHub
parent 07bd6089ec
commit ed41bd71dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1657,9 +1657,12 @@ static void FASTCALL MENU_DrawBitmapItem(HDC hdc, PITEM lpitem, const RECT *rect
int h = rect->bottom - rect->top;
int bmp_xoffset = 0;
int left, top;
BOOL flat_menu;
HBITMAP hbmToDraw = lpitem->hbmp;
bmp = hbmToDraw;
UserSystemParametersInfo(SPI_GETFLATMENU, 0, &flat_menu, 0);
/* Check if there is a magic menu item associated with this item */
if (IS_MAGIC_BITMAP(hbmToDraw))
{
@ -1778,6 +1781,12 @@ static void FASTCALL MENU_DrawBitmapItem(HDC hdc, PITEM lpitem, const RECT *rect
rop=((lpitem->fState & MF_HILITE) && !IS_MAGIC_BITMAP(hbmToDraw)) ? NOTSRCCOPY : SRCCOPY;
if ((lpitem->fState & MF_HILITE) && lpitem->hbmp)
IntGdiSetBkColor(hdc, IntGetSysColor(COLOR_HIGHLIGHT));
if (!flat_menu &&
(lpitem->fState & (MF_HILITE | MF_GRAYED)) == MF_HILITE)
{
++left;
++top;
}
NtGdiBitBlt( hdc, left, top, w, h, hdcMem, bmp_xoffset, 0, rop , 0, 0);
IntGdiDeleteDC( hdcMem, FALSE );
}
@ -2325,10 +2334,15 @@ static void FASTCALL MENU_DrawMenuItem(PWND Wnd, PMENU Menu, PWND WndOwner, HDC
}
else
{
if(menuBar)
if (menuBar)
{
FillRect(hdc, &rect, IntGetSysColorBrush(COLOR_MENU));
DrawEdge(hdc, &rect, BDR_SUNKENOUTER, BF_RECT);
}
else
{
FillRect(hdc, &rect, IntGetSysColorBrush(COLOR_HIGHLIGHT));
}
}
}
else
@ -2517,6 +2531,12 @@ static void FASTCALL MENU_DrawMenuItem(PWND Wnd, PMENU Menu, PWND WndOwner, HDC
break;
}
if (!flat_menu &&
(lpitem->fState & (MF_HILITE | MF_GRAYED)) == MF_HILITE)
{
RECTL_vOffsetRect(&rect, +1, +1);
}
if(lpitem->fState & MF_GRAYED)
{
if (!(lpitem->fState & MF_HILITE) )
@ -2558,6 +2578,12 @@ static void FASTCALL MENU_DrawMenuItem(PWND Wnd, PMENU Menu, PWND WndOwner, HDC
DrawTextW( hdc, Text + i + 1, -1, &rect, uFormat );
}
if (!flat_menu &&
(lpitem->fState & (MF_HILITE | MF_GRAYED)) == MF_HILITE)
{
RECTL_vOffsetRect(&rect, -1, -1);
}
if (hfontOld)
{
NtGdiSelectFont (hdc, hfontOld);