Set the background color in AttachedToWindow instead of repeatedly in Draw().
Try harder to avoid B_TRANSPARENT_COLOR of the parent. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36945 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -69,6 +69,16 @@ IconButton::MessageReceived(BMessage* message)
|
|||||||
void
|
void
|
||||||
IconButton::AttachedToWindow()
|
IconButton::AttachedToWindow()
|
||||||
{
|
{
|
||||||
|
rgb_color background = B_TRANSPARENT_COLOR;
|
||||||
|
if (BView* parent = Parent()) {
|
||||||
|
background = parent->ViewColor();
|
||||||
|
if (background == B_TRANSPARENT_COLOR)
|
||||||
|
background = parent->LowColor();
|
||||||
|
}
|
||||||
|
if (background == B_TRANSPARENT_COLOR)
|
||||||
|
background = ui_color(B_PANEL_BACKGROUND_COLOR);
|
||||||
|
SetLowColor(background);
|
||||||
|
|
||||||
SetTarget(fTargetCache);
|
SetTarget(fTargetCache);
|
||||||
if (!Target())
|
if (!Target())
|
||||||
SetTarget(Window());
|
SetTarget(Window());
|
||||||
@@ -79,8 +89,6 @@ void
|
|||||||
IconButton::Draw(BRect area)
|
IconButton::Draw(BRect area)
|
||||||
{
|
{
|
||||||
rgb_color background = LowColor();
|
rgb_color background = LowColor();
|
||||||
if (BView* parent = Parent())
|
|
||||||
background = parent->LowColor();
|
|
||||||
|
|
||||||
BRect r(Bounds());
|
BRect r(Bounds());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user