X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/635eb8bcc44d0bec40bcfa7e5cc8c6be1a0c7b96..8ae94823a3bf377614a5a67f750545217b6f6b8d:/src/univ/winuniv.cpp diff --git a/src/univ/winuniv.cpp b/src/univ/winuniv.cpp index 1fbcf71f96..cb89cc06f7 100644 --- a/src/univ/winuniv.cpp +++ b/src/univ/winuniv.cpp @@ -6,7 +6,7 @@ // Created: 06.08.00 // RCS-ID: $Id$ // Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com) -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // =========================================================================== @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "univwindow.h" #endif @@ -182,7 +182,7 @@ const wxBitmap& wxWindow::GetBackgroundBitmap(int *alignment, // ---------------------------------------------------------------------------- // the event handlers executed when the window must be repainted -void wxWindow::OnNcPaint(wxPaintEvent& event) +void wxWindow::OnNcPaint(wxPaintEvent& WXUNUSED(event)) { if ( m_renderer ) { @@ -340,7 +340,7 @@ void wxWindow::DoDrawBorder(wxDC& dc, const wxRect& rect) } } -void wxWindow::DoDraw(wxControlRenderer *renderer) +void wxWindow::DoDraw(wxControlRenderer * WXUNUSED(renderer)) { } @@ -391,6 +391,19 @@ void wxWindow::Refresh(bool eraseBackground, const wxRect *rectClient) #endif // WXDEBUG_REFRESH wxWindowNative::Refresh(eraseBackground, &rectWin); + + // Refresh all sub controls if any. + wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); + while ( node ) + { + wxWindow *win = node->GetData(); + // Only refresh sub controls when it is visible + // and when it is in the update region. + if(!win->IsKindOf(CLASSINFO(wxTopLevelWindow)) && win->IsShown() && wxRegion(rectWin).Contains(win->GetRect()) != wxOutRegion) + win->Refresh(eraseBackground, &rectWin); + + node = node->GetNext(); + } } // ---------------------------------------------------------------------------- @@ -878,7 +891,7 @@ void wxWindow::SetScrollbar(int orient, } } -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) +void wxWindow::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh)) { wxScrollBar *scrollbar = GetScrollbar(orient); wxCHECK_RET( scrollbar, _T("no scrollbar to set position for") ); @@ -941,7 +954,7 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) // scroll children accordingly: wxPoint offset(dx, dy); - for (wxWindowList::Node *node = GetChildren().GetFirst(); + for (wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); node; node = node->GetNext()) { wxWindow *child = node->GetData();