Author: gadamopoulos Date: Sun Feb 22 19:44:34 2015 New Revision: 66416
URL: http://svn.reactos.org/svn/reactos?rev=66416&view=rev Log: [COMCTL32] - Rebar: Fix drawing dividers between bands broken in r66402
Modified: trunk/reactos/dll/win32/comctl32/rebar.c
Modified: trunk/reactos/dll/win32/comctl32/rebar.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/rebar.c?... ============================================================================== --- trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/rebar.c [iso-8859-1] Sun Feb 22 19:44:34 2015 @@ -1836,6 +1836,7 @@ oldrow = -1; for(i=0; i<infoPtr->uNumBands; i++) { RECT rcBand; + RECT rcBandReal; HRGN hrgnBand;
lpBand = REBAR_GetBand(infoPtr, i); @@ -1843,9 +1844,7 @@ if (HIDDENBAND(lpBand)) continue; translate_rect(infoPtr, &rcBand, &lpBand->rcBand);
- hrgnBand = CreateRectRgn(rcBand.left, rcBand.top, rcBand.right, rcBand.bottom); - CombineRgn(hrgn, hrgn, hrgnBand, RGN_DIFF); - DeleteObject(hrgnBand); + rcBandReal = rcBand;
/* draw band separator between rows */ if (lpBand->iRow != oldrow) { @@ -1871,6 +1870,7 @@ } TRACE ("drawing band separator bottom (%s)\n", wine_dbgstr_rect(&rcRowSep)); + rcBandReal = rcRowSep; } }
@@ -1881,6 +1881,7 @@ if (infoPtr->dwStyle & CCS_VERT) { rcSep.bottom = rcSep.top; rcSep.top -= SEP_WIDTH_SIZE; + rcBandReal.top -= SEP_WIDTH_SIZE; if (theme) DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_BOTTOM, NULL); else @@ -1889,6 +1890,7 @@ else { rcSep.right = rcSep.left; rcSep.left -= SEP_WIDTH_SIZE; + rcBandReal.left -= SEP_WIDTH_SIZE; if (theme) DrawThemeEdge (theme, hdc, RP_BAND, 0, &rcSep, EDGE_ETCHED, BF_RIGHT, NULL); else @@ -1936,6 +1938,10 @@ if (lpBand->clrBack != CLR_NONE) SetBkColor (hdc, old); } + + hrgnBand = CreateRectRgn(rcBandReal.left, rcBandReal.top, rcBandReal.right, rcBandReal.bottom); + CombineRgn(hrgn, hrgn, hrgnBand, RGN_DIFF); + DeleteObject(hrgnBand); }
#if 1