diff --git a/src/generic/headerctrlg.cpp b/src/generic/headerctrlg.cpp index 6dcccfdce8..394c0c3896 100644 --- a/src/generic/headerctrlg.cpp +++ b/src/generic/headerctrlg.cpp @@ -487,9 +487,6 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) wxAutoBufferedPaintDC dc(this); - dc.SetBackground(GetBackgroundColour()); - dc.Clear(); - // account for the horizontal scrollbar offset in the parent window dc.SetDeviceOrigin(m_scrollOffset, 0); @@ -535,7 +532,7 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) params.m_labelAlignment = col.GetAlignment(); #ifdef __WXGTK__ - if (i == count-1) + if (i == count-1 && xpos + colWidth >= w) { // colWidth = wxMax( colWidth, vw - xpos ); state |= wxCONTROL_DIRTY; @@ -554,6 +551,14 @@ void wxHeaderCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) xpos += colWidth; } + if (xpos < w) + { + int state = wxCONTROL_DIRTY; + if (!IsEnabled()) + state |= wxCONTROL_DISABLED; + wxRendererNative::Get().DrawHeaderButton( + this, dc, wxRect(xpos, 0, w - xpos, h), state); + } } void wxHeaderCtrl::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))