X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2cef71bc23a9cd0ec543e451848fb9e88ace36e9..cbbd3db2f9d9b59c970f58d814aaa7a27d381b83:/src/msw/notebook.cpp diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index 669d99dade..8eb710fbe4 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -964,8 +964,9 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) // wxWindow * const parent = GetParent(); - const bool isFromParent = event.GetEventObject() == parent; - const bool isFromSelf = event.GetEventObject() == this; + // the wxObject* casts are required to avoid MinGW GCC 2.95.3 ICE + const bool isFromParent = event.GetEventObject() == (wxObject*) parent; + const bool isFromSelf = event.GetEventObject() == (wxObject*) this; if ( isFromParent || isFromSelf ) { @@ -1044,7 +1045,7 @@ bool wxNotebook::DoDrawBackground(WXHDC hDC, wxWindow *child) wxUxThemeEngine::Get()->DrawThemeBackground ( theme, - hDC, + (HDC) hDC, 9 /* TABP_PANE */, 0, &rc, @@ -1115,6 +1116,29 @@ bool wxNotebook::MSWPrintChild(WXHDC hDC, wxWindow *child) if ( !UseBgCol() && DoDrawBackground(hDC, child) ) return true; + // If we're using a solid colour (for example if we've switched off + // theming for this notebook), paint it + if (UseBgCol()) + { + wxRect r = GetPageSize(); + if ( r.IsEmpty() ) + return false; + + RECT rc; + wxCopyRectToRECT(r, rc); + + // map rect to the coords of the window we're drawing in + if ( child ) + ::MapWindowPoints(GetHwnd(), GetHwndOf(child), (POINT *)&rc, 2); + + wxBrush brush(GetBackgroundColour()); + HBRUSH hbr = GetHbrushOf(brush); + + ::FillRect((HDC) hDC, &rc, hbr); + + return true; + } + return wxNotebookBase::MSWPrintChild(hDC, child); }