Improve appearance for themes that don't allow background colour change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2255,6 +2255,7 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int total_h = GetLineHeight(item);
|
int total_h = GetLineHeight(item);
|
||||||
|
bool hasCustomBackground = false;
|
||||||
|
|
||||||
if ( item->IsSelected() )
|
if ( item->IsSelected() )
|
||||||
{
|
{
|
||||||
@@ -2277,7 +2278,10 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
|||||||
{
|
{
|
||||||
wxColour colBg;
|
wxColour colBg;
|
||||||
if ( attr && attr->HasBackgroundColour() )
|
if ( attr && attr->HasBackgroundColour() )
|
||||||
|
{
|
||||||
|
hasCustomBackground = true;
|
||||||
colBg = attr->GetBackgroundColour();
|
colBg = attr->GetBackgroundColour();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
colBg = m_backgroundColour;
|
colBg = m_backgroundColour;
|
||||||
dc.SetBrush(wxBrush(colBg, wxSOLID));
|
dc.SetBrush(wxBrush(colBg, wxSOLID));
|
||||||
@@ -2303,7 +2307,10 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
|||||||
dc.DrawRectangle( item->GetX() + image_w - 2, item->GetY()+offset,
|
dc.DrawRectangle( item->GetX() + image_w - 2, item->GetY()+offset,
|
||||||
item->GetWidth() - image_w + 2, total_h-offset );
|
item->GetWidth() - image_w + 2, total_h-offset );
|
||||||
}
|
}
|
||||||
else
|
// On GTK+ 2, drawing a 'normal' background is wrong for themes that
|
||||||
|
// don't allow backgrounds to be customized. Not drawing the background,
|
||||||
|
// except for custom item backgrounds, works for both kinds of theme.
|
||||||
|
else if (hasCustomBackground)
|
||||||
{
|
{
|
||||||
dc.DrawRectangle( item->GetX()-2, item->GetY()+offset,
|
dc.DrawRectangle( item->GetX()-2, item->GetY()+offset,
|
||||||
item->GetWidth()+2, total_h-offset );
|
item->GetWidth()+2, total_h-offset );
|
||||||
|
Reference in New Issue
Block a user