From: Vadim Zeitlin Date: Mon, 5 Mar 2007 08:54:13 +0000 (+0000) Subject: use virtual size for the size of the buffer when wxBUFFER_VIRTUAL_AREA style is used X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d38819f56f68eebd88fd88f47fa44711bf6ec5d0?ds=sidebyside use virtual size for the size of the buffer when wxBUFFER_VIRTUAL_AREA style is used git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- 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;