diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index 1f9cdef222..ca8fcdfa4c 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -21,6 +21,7 @@ #ifndef WX_PRECOMP #include "wx/settings.h" + #include "wx/dcbuffer.h" // just for wxALWAYS_NATIVE_DOUBLE_BUFFER #include "wx/dcclient.h" #include "wx/dcmemory.h" #include "wx/frame.h" @@ -414,6 +415,13 @@ void wxAuiTabContainer::Render(wxDC* raw_dc, wxWindow* wnd) if (m_rect.IsEmpty()) return; + size_t i; + size_t page_count = m_pages.GetCount(); + size_t button_count = m_buttons.GetCount(); + +#if wxALWAYS_NATIVE_DOUBLE_BUFFER + wxDC& dc = *raw_dc; +#else wxMemoryDC dc; // use the same layout direction as the window DC uses to ensure that the @@ -421,16 +429,13 @@ void wxAuiTabContainer::Render(wxDC* raw_dc, wxWindow* wnd) dc.SetLayoutDirection(raw_dc->GetLayoutDirection()); wxBitmap bmp; - size_t i; - size_t page_count = m_pages.GetCount(); - size_t button_count = m_buttons.GetCount(); - // create off-screen bitmap bmp.Create(m_rect.GetWidth(), m_rect.GetHeight(),*raw_dc); dc.SelectObject(bmp); if (!dc.IsOk()) return; +#endif // ensure we show as many tabs as possible while (m_tabOffset > 0 && IsTabVisible(page_count-1, m_tabOffset-1, &dc, wnd)) @@ -707,9 +712,11 @@ void wxAuiTabContainer::Render(wxDC* raw_dc, wxWindow* wnd) } +#if !wxALWAYS_NATIVE_DOUBLE_BUFFER raw_dc->Blit(m_rect.x, m_rect.y, m_rect.GetWidth(), m_rect.GetHeight(), &dc, 0, 0); +#endif } // Is the tab visible?