fixed repainting of windows without the wxFULL_REPAINT_ON_RESIZE style under wxMSW/Univ

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2006-10-27 12:21:51 +00:00
parent be38a31d37
commit 54e90b2a32

View File

@@ -124,20 +124,27 @@ bool wxWindow::Create(wxWindow *parent,
{
long actualStyle = style;
// FIXME: may need this on other platforms
#ifdef __WXMSW__
actualStyle &= ~wxVSCROLL;
actualStyle &= ~wxHSCROLL;
#endif
// we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
// as under the other platforms
if ( !wxWindowNative::Create(parent, id, pos, size,
actualStyle | wxCLIP_CHILDREN,
name) )
{
actualStyle |= wxCLIP_CHILDREN;
#ifdef __WXMSW__
// FIXME: may need this on other platforms
actualStyle &= ~wxVSCROLL;
actualStyle &= ~wxHSCROLL;
// without this, borders (non-client areas in general) are not repainted
// correctly when resizing; apparently, native NC areas are fully repainted
// even without this style by MSW, but wxUniv implements client area
// itself, so it doesn't work correctly for us
//
// FIXME: this is very expensive, we need to fix the (commented-out) code
// in OnSize() instead
actualStyle |= wxFULL_REPAINT_ON_RESIZE;
#endif
if ( !wxWindowNative::Create(parent, id, pos, size, actualStyle, name) )
return false;
}
// Set full style again, including those we didn't want present
// when calling the base window Create().