Module: wine Branch: master Commit: bfb49ad04c7863afe7585f6c151c29a7e51b20bf URL: https://source.winehq.org/git/wine.git/?a=commit;h=bfb49ad04c7863afe7585f6c1...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Fri May 27 18:32:32 2022 +0800
comctl32/toolbar: Add support for TBCDRF_NOBACKGROUND.
Tested manually on XP, Win 7 and Win 10.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53049 Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com
---
dlls/comctl32/toolbar.c | 31 +++++++++++++++++-------------- include/commctrl.h | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index 9b059996b65..bea294958c5 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -1062,20 +1062,23 @@ TOOLBAR_DrawButton (const TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr, HDC hdc,
if (theme) { - int partId = drawSepDropDownArrow ? TP_SPLITBUTTON : TP_BUTTON; - int stateId = TS_NORMAL; - - if (tbcd.nmcd.uItemState & CDIS_DISABLED) - stateId = TS_DISABLED; - else if (tbcd.nmcd.uItemState & CDIS_SELECTED) - stateId = TS_PRESSED; - else if (tbcd.nmcd.uItemState & CDIS_CHECKED) - stateId = (tbcd.nmcd.uItemState & CDIS_HOT) ? TS_HOTCHECKED : TS_CHECKED; - else if ((tbcd.nmcd.uItemState & CDIS_HOT) - || (drawSepDropDownArrow && btnPtr->bDropDownPressed)) - stateId = TS_HOT; - - DrawThemeBackground (theme, hdc, partId, stateId, &rc, NULL); + if (!(dwItemCDFlag & TBCDRF_NOBACKGROUND)) + { + int partId = drawSepDropDownArrow ? TP_SPLITBUTTON : TP_BUTTON; + int stateId = TS_NORMAL; + + if (tbcd.nmcd.uItemState & CDIS_DISABLED) + stateId = TS_DISABLED; + else if (tbcd.nmcd.uItemState & CDIS_SELECTED) + stateId = TS_PRESSED; + else if (tbcd.nmcd.uItemState & CDIS_CHECKED) + stateId = (tbcd.nmcd.uItemState & CDIS_HOT) ? TS_HOTCHECKED : TS_CHECKED; + else if ((tbcd.nmcd.uItemState & CDIS_HOT) + || (drawSepDropDownArrow && btnPtr->bDropDownPressed)) + stateId = TS_HOT; + + DrawThemeBackground(theme, hdc, partId, stateId, &rc, NULL); + } } else TOOLBAR_DrawFrame(infoPtr, &tbcd, &rc, dwItemCDFlag); diff --git a/include/commctrl.h b/include/commctrl.h index b829e4498ea..725ef64764f 100644 --- a/include/commctrl.h +++ b/include/commctrl.h @@ -1380,7 +1380,7 @@ typedef struct _NMTBCUSTOMDRAW #define TBCDRF_NOETCHEDEFFECT 0x00100000 /* No etched effect for */ /* disabled items */ #define TBCDRF_BLENDICON 0x00200000 /* ILD_BLEND50 on the icon image */ -#define TBCDRF_NOBACKGROUND 0x00400000 /* ILD_BLEND50 on the icon image */ +#define TBCDRF_NOBACKGROUND 0x00400000 /* Don't draw button background */ #define TBCDRF_USECDCOLORS 0x00800000