X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b8797d96ca1d94443bd2201e9884fc9a16cb53bb..7bad1010c228665dfbebf4fb28839dd255b5072d:/src/msw/notebook.cpp diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index 831680858f..333a22bfc9 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -30,6 +30,7 @@ #include "wx/dcclient.h" #include "wx/dcmemory.h" #include "wx/control.h" + #include "wx/panel.h" #endif // WX_PRECOMP #include "wx/imaglist.h" @@ -492,6 +493,8 @@ int wxNotebook::ChangeSelection(size_t nPage) { wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") ); + const int selOld = m_nSelection; + if ( m_nSelection == wxNOT_FOUND || nPage != (size_t)m_nSelection ) { TabCtrl_SetCurSel(GetHwnd(), nPage); @@ -499,7 +502,7 @@ int wxNotebook::ChangeSelection(size_t nPage) UpdateSelection(nPage); } - return m_nSelection; + return selOld; } bool wxNotebook::SetPageText(size_t nPage, const wxString& strText) @@ -816,6 +819,14 @@ bool wxNotebook::InsertPage(size_t nPage, // succeeded: save the pointer to the page m_pages.Insert(pPage, nPage); + // also ensure that the notebook background is used for its pages by making + // them transparent: this ensures that MSWGetBgBrush() queries the notebook + // for the background brush to be used for erasing them + if ( wxPanel *panel = wxDynamicCast(pPage, wxPanel) ) + { + panel->MSWSetTransparentBackground(); + } + // we may need to adjust the size again if the notebook size changed: // normally this only happens for the first page we add (the tabs which // hadn't been there before are now shown) but for a multiline notebook it