ControlLook: Fix redraw issues introduced in hrev50893.
* I was pretty sure that I didn't change the logic, but turns out I was wrong. Sorry about that. * Adjusted copy-pasted comments. Signed-off-by: Adrien Destugues <[email protected]> Fixes #13238.
This commit is contained in:
committed by
Adrien Destugues
parent
99dde24c86
commit
c7fabe22b4
@@ -1445,12 +1445,12 @@ BControlLook::DrawActiveTab(BView* view, BRect& rect, const BRect& updateRect,
|
|||||||
clipping.Exclude(leftBottomCorner);
|
clipping.Exclude(leftBottomCorner);
|
||||||
clipping.Exclude(rightBottomCorner);
|
clipping.Exclude(rightBottomCorner);
|
||||||
|
|
||||||
// draw the left top corner
|
// draw the left bottom corner
|
||||||
_DrawRoundCornerLeftBottom(view, leftBottomCorner, updateRect, base,
|
_DrawRoundCornerLeftBottom(view, leftBottomCorner, updateRect, base,
|
||||||
edgeShadowColor, edgeLightColor, frameLightColor,
|
edgeShadowColor, edgeLightColor, frameLightColor,
|
||||||
frameShadowColor, bevelLightColor, bevelShadowColor,
|
frameShadowColor, bevelLightColor, bevelShadowColor,
|
||||||
fillGradient);
|
fillGradient);
|
||||||
// draw the right top corner
|
// draw the right bottom corner
|
||||||
_DrawRoundCornerRightBottom(view, rightBottomCorner, updateRect,
|
_DrawRoundCornerRightBottom(view, rightBottomCorner, updateRect,
|
||||||
base, edgeLightColor, frameShadowColor, bevelShadowColor,
|
base, edgeLightColor, frameShadowColor, bevelShadowColor,
|
||||||
fillGradient);
|
fillGradient);
|
||||||
@@ -1463,7 +1463,7 @@ BControlLook::DrawActiveTab(BView* view, BRect& rect, const BRect& updateRect,
|
|||||||
_DrawRoundCornerLeftTop(view, leftTopCorner, updateRect, base,
|
_DrawRoundCornerLeftTop(view, leftTopCorner, updateRect, base,
|
||||||
edgeShadowColor, frameLightColor, bevelLightColor,
|
edgeShadowColor, frameLightColor, bevelLightColor,
|
||||||
fillGradient);
|
fillGradient);
|
||||||
// draw the left top corner
|
// draw the left bottom corner
|
||||||
_DrawRoundCornerLeftBottom(view, leftBottomCorner, updateRect, base,
|
_DrawRoundCornerLeftBottom(view, leftBottomCorner, updateRect, base,
|
||||||
edgeShadowColor, edgeLightColor, frameLightColor,
|
edgeShadowColor, edgeLightColor, frameLightColor,
|
||||||
frameShadowColor, bevelLightColor, bevelShadowColor,
|
frameShadowColor, bevelLightColor, bevelShadowColor,
|
||||||
@@ -1478,7 +1478,7 @@ BControlLook::DrawActiveTab(BView* view, BRect& rect, const BRect& updateRect,
|
|||||||
edgeShadowColor, edgeLightColor, frameLightColor,
|
edgeShadowColor, edgeLightColor, frameLightColor,
|
||||||
frameShadowColor, bevelLightColor, bevelShadowColor,
|
frameShadowColor, bevelLightColor, bevelShadowColor,
|
||||||
fillGradient);
|
fillGradient);
|
||||||
// draw the right top corner
|
// draw the right bottom corner
|
||||||
_DrawRoundCornerRightBottom(view, rightBottomCorner, updateRect,
|
_DrawRoundCornerRightBottom(view, rightBottomCorner, updateRect,
|
||||||
base, edgeLightColor, frameShadowColor, bevelShadowColor,
|
base, edgeLightColor, frameShadowColor, bevelShadowColor,
|
||||||
fillGradient);
|
fillGradient);
|
||||||
@@ -1569,29 +1569,34 @@ BControlLook::DrawInactiveTab(BView* view, BRect& rect, const BRect& updateRect,
|
|||||||
fillGradient.AddColor(tint_color(base, 1.08), 255);
|
fillGradient.AddColor(tint_color(base, 1.08), 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BRect background = rect;
|
||||||
uint32 bordersToDraw = 0;
|
uint32 bordersToDraw = 0;
|
||||||
switch (side) {
|
switch (side) {
|
||||||
case B_TOP_BORDER:
|
case B_TOP_BORDER:
|
||||||
bordersToDraw = (B_LEFT_BORDER | B_TOP_BORDER | B_RIGHT_BORDER);
|
bordersToDraw = (B_LEFT_BORDER | B_TOP_BORDER | B_RIGHT_BORDER);
|
||||||
rect.top += 4;
|
rect.top += 4;
|
||||||
|
background.bottom = rect.top;
|
||||||
break;
|
break;
|
||||||
case B_BOTTOM_BORDER:
|
case B_BOTTOM_BORDER:
|
||||||
bordersToDraw = (B_LEFT_BORDER | B_BOTTOM_BORDER | B_RIGHT_BORDER);
|
bordersToDraw = (B_LEFT_BORDER | B_BOTTOM_BORDER | B_RIGHT_BORDER);
|
||||||
rect.bottom -= 4;
|
rect.bottom -= 4;
|
||||||
|
background.top = rect.bottom;
|
||||||
break;
|
break;
|
||||||
case B_LEFT_BORDER:
|
case B_LEFT_BORDER:
|
||||||
bordersToDraw = (B_LEFT_BORDER | B_BOTTOM_BORDER | B_TOP_BORDER);
|
bordersToDraw = (B_LEFT_BORDER | B_BOTTOM_BORDER | B_TOP_BORDER);
|
||||||
rect.left += 4;
|
rect.left += 4;
|
||||||
|
background.right = rect.left;
|
||||||
break;
|
break;
|
||||||
case B_RIGHT_BORDER:
|
case B_RIGHT_BORDER:
|
||||||
bordersToDraw = (B_RIGHT_BORDER | B_BOTTOM_BORDER | B_TOP_BORDER);
|
bordersToDraw = (B_RIGHT_BORDER | B_BOTTOM_BORDER | B_TOP_BORDER);
|
||||||
rect.right -= 4;
|
rect.right -= 4;
|
||||||
|
background.left = rect.right;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// active tabs stand out at the top, but this is an inactive tab
|
// active tabs stand out at the top, but this is an inactive tab
|
||||||
view->SetHighColor(base);
|
view->SetHighColor(base);
|
||||||
view->FillRect(rect);
|
view->FillRect(background);
|
||||||
|
|
||||||
// frame and fill
|
// frame and fill
|
||||||
_DrawFrame(view, rect, edgeShadowColor, edgeShadowColor, edgeLightColor,
|
_DrawFrame(view, rect, edgeShadowColor, edgeShadowColor, edgeLightColor,
|
||||||
|
|||||||
Reference in New Issue
Block a user