diff --git a/src/generic/datectlg.cpp b/src/generic/datectlg.cpp index c035731aab..8a1c2bcf2e 100644 --- a/src/generic/datectlg.cpp +++ b/src/generic/datectlg.cpp @@ -194,12 +194,33 @@ void wxDropdownButton::DoMoveWindow(int x, int y, int w, int h) wxRect r(0,0,bw, bh); wxRendererNative& renderer = wxRendererNative::Get(); + +#ifdef __WXGTK__ + wxColour magic(255,0,255); + dc.SetBrush( wxBrush( magic ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + dc.DrawRectangle(0,0,bw,bh); renderer.DrawComboBoxDropButton(this, dc, r); + wxMask *mask = new wxMask( bmp, magic ); + bmp.SetMask( mask ); +#else + renderer.DrawComboBoxDropButton(this, dc, r); +#endif SetBitmapLabel(bmp); wxBitmap bmpSel(bw, bh); dc.SelectObject(bmpSel); + +#ifdef __WXGTK__ + dc.SetBrush( wxBrush( magic ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + dc.DrawRectangle(0,0,bw,bh); renderer.DrawComboBoxDropButton(this, dc, r, wxCONTROL_PRESSED); + mask = new wxMask( bmpSel, magic ); + bmpSel.SetMask( mask ); +#else + renderer.DrawComboBoxDropButton(this, dc, r, wxCONTROL_PRESSED); +#endif SetBitmapSelected(bmpSel); } diff --git a/src/gtk/renderer.cpp b/src/gtk/renderer.cpp index c6e3f69cdc..1094858d74 100644 --- a/src/gtk/renderer.cpp +++ b/src/gtk/renderer.cpp @@ -396,19 +396,6 @@ void wxRendererGTK::DrawComboBoxDropButton(wxWindow *win, else state = GTK_STATE_NORMAL; - // erase background first - gtk_paint_box - ( - button->style, - wdc.m_window, - state, - GTK_SHADOW_NONE, - NULL, - button, - "button", - rect.x, rect.y, rect.width, rect.height - ); - // draw arrow on button gtk_paint_arrow ( diff --git a/src/gtk1/renderer.cpp b/src/gtk1/renderer.cpp index c6e3f69cdc..1094858d74 100644 --- a/src/gtk1/renderer.cpp +++ b/src/gtk1/renderer.cpp @@ -396,19 +396,6 @@ void wxRendererGTK::DrawComboBoxDropButton(wxWindow *win, else state = GTK_STATE_NORMAL; - // erase background first - gtk_paint_box - ( - button->style, - wdc.m_window, - state, - GTK_SHADOW_NONE, - NULL, - button, - "button", - rect.x, rect.y, rect.width, rect.height - ); - // draw arrow on button gtk_paint_arrow (