X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3550706df76875b741ae10e85e496da4ec30799d..ea75e99e8f13bf5df8149ba8d2d6f55a4c81e8d8:/src/msw/notebook.cpp diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index 46abba6daa..0d33813584 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "notebook.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -94,7 +90,7 @@ static WXFARPROC gs_wndprocNotebookSpinBtn = (WXFARPROC)NULL; // the pointer to standard tab control wnd proc -static WXFARPROC gs_wndprocNotebook = (WXFARPROC)NULL; +static WXFARPROC gs_wndprocNotebook = (WXFARPROC)NULL; LRESULT APIENTRY _EXPORT wxNotebookWndProc(HWND hwnd, UINT message, @@ -109,7 +105,7 @@ LRESULT APIENTRY _EXPORT wxNotebookWndProc(HWND hwnd, #include -WX_DEFINE_LIST( wxNotebookPageInfoList ) ; +WX_DEFINE_LIST( wxNotebookPageInfoList ) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) @@ -345,6 +341,11 @@ bool wxNotebook::Create(wxWindow *parent, { SetBackgroundColour(GetThemeBackgroundColour()); } + else // use themed background by default + { + // create backing store + UpdateBgBrush(); + } #endif // wxUSE_UXTHEME // Undocumented hack to get flat notebook style @@ -811,8 +812,6 @@ LRESULT APIENTRY _EXPORT wxNotebookWndProc(HWND hwnd, hwnd, message, wParam, lParam); } - - void wxNotebook::OnEraseBackground(wxEraseEvent& WXUNUSED(event)) { // do nothing here @@ -990,20 +989,17 @@ void wxNotebook::OnSelChange(wxNotebookEvent& event) { wxNotebookPage *pPage = m_pages[sel]; pPage->Show(true); + } - // As per bug report: - // http://sourceforge.net/tracker/index.php?func=detail&aid=1150659&group_id=9863&atid=109863, - // we should not set the page focus (and thereby the focus for - // a child window) since it erroneously selects radio button controls and also - // breaks keyboard handling for a notebook's scroll buttons. So - // we always focus the notebook and not the page. - SetFocus(); + // Changing the page should give the focus to it but, as per bug report + // http://sf.net/tracker/index.php?func=detail&aid=1150659&group_id=9863&atid=109863, + // we should not set the focus to it directly since it erroneously + // selects radio buttons and breaks keyboard handling for a notebook's + // scroll buttons. So give focus to the notebook and not the page. - } - else // no pages in the notebook, give the focus to itself - { - SetFocus(); - } + // but don't do this is the notebook is hidden + if ( ::IsWindowVisible(GetHwnd()) ) + SetFocus(); m_nSelection = sel; }