From c5effe4953e557ef5ad8cfcddf2a4edb68e151df Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 5 Mar 2007 08:58:09 +0000 Subject: [PATCH] use virtual size for the size of the buffer when wxBUFFER_VIRTUAL_AREA style is used [backport from HEAD] git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@44609 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/dcbuffer.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/include/wx/dcbuffer.h b/include/wx/dcbuffer.h index ef5383bbdf..0f4e896d9f 100644 --- a/include/wx/dcbuffer.h +++ b/include/wx/dcbuffer.h @@ -173,7 +173,7 @@ public: if( buffer.IsOk() ) Init(&m_paintdc, buffer, style); else - Init(&m_paintdc, window->GetClientSize(), style); + Init(&m_paintdc, GetBufferedSize(window, style), style); } // If no bitmap is supplied by the user, a temporary one will be created. @@ -184,7 +184,7 @@ public: if (style & wxBUFFER_VIRTUAL_AREA) window->PrepareDC( m_paintdc ); - Init(&m_paintdc, window->GetClientSize(), style); + Init(&m_paintdc, GetBufferedSize(window, style), style); } // default copy ctor ok. @@ -196,6 +196,15 @@ public: UnMask(); } +protected: + // return the size needed by the buffer: this depends on whether we're + // buffering just the currently shown part or the total (scrolled) window + static wxSize GetBufferedSize(wxWindow *window, int style) + { + return style & wxBUFFER_VIRTUAL_AREA ? window->GetVirtualSize() + : window->GetClientSize(); + } + private: wxPaintDC m_paintdc;