don't set focus to a hidden notebook (patch 1299005)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -8,6 +8,7 @@ wxWidgets Change Log - For more verbose changes, see the manual
 | 
				
			|||||||
wxMSW:
 | 
					wxMSW:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- wxFileDialog respects absence of wxCHANGE_DIR flag under NT (Brad Anderson)
 | 
					- wxFileDialog respects absence of wxCHANGE_DIR flag under NT (Brad Anderson)
 | 
				
			||||||
 | 
					- Switching page of a hidden notebook doesn't lose focus (Jamie Gadd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Unix:
 | 
					Unix:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,7 +90,7 @@
 | 
				
			|||||||
static WXFARPROC gs_wndprocNotebookSpinBtn = (WXFARPROC)NULL;
 | 
					static WXFARPROC gs_wndprocNotebookSpinBtn = (WXFARPROC)NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// the pointer to standard tab control wnd proc
 | 
					// 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,
 | 
					LRESULT APIENTRY _EXPORT wxNotebookWndProc(HWND hwnd,
 | 
				
			||||||
                                           UINT message,
 | 
					                                           UINT message,
 | 
				
			||||||
@@ -812,8 +812,6 @@ LRESULT APIENTRY _EXPORT wxNotebookWndProc(HWND hwnd,
 | 
				
			|||||||
                            hwnd, message, wParam, lParam);
 | 
					                            hwnd, message, wParam, lParam);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void wxNotebook::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
 | 
					void wxNotebook::OnEraseBackground(wxEraseEvent& WXUNUSED(event))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    // do nothing here
 | 
					    // do nothing here
 | 
				
			||||||
@@ -991,21 +989,18 @@ void wxNotebook::OnSelChange(wxNotebookEvent& event)
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
        wxNotebookPage *pPage = m_pages[sel];
 | 
					        wxNotebookPage *pPage = m_pages[sel];
 | 
				
			||||||
        pPage->Show(true);
 | 
					        pPage->Show(true);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // As per bug report:
 | 
					      // Changing the page should give the focus to it but, as per bug report
 | 
				
			||||||
        // http://sourceforge.net/tracker/index.php?func=detail&aid=1150659&group_id=9863&atid=109863,
 | 
					      // http://sf.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
 | 
					      // we should not set the focus to it directly since it erroneously
 | 
				
			||||||
        // a child window) since it erroneously selects radio button controls and also
 | 
					      // selects radio buttons and breaks keyboard handling for a notebook's
 | 
				
			||||||
        // breaks keyboard handling for a notebook's scroll buttons. So
 | 
					      // scroll buttons. So give focus to the notebook and not the page.
 | 
				
			||||||
        // we always focus the notebook and not the page.
 | 
					
 | 
				
			||||||
 | 
					      // but don't do this is the notebook is hidden
 | 
				
			||||||
 | 
					      if ( ::IsWindowVisible(GetHwnd()) )
 | 
				
			||||||
        SetFocus();
 | 
					        SetFocus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      else // no pages in the notebook, give the focus to itself
 | 
					 | 
				
			||||||
      {
 | 
					 | 
				
			||||||
          SetFocus();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      m_nSelection = sel;
 | 
					      m_nSelection = sel;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user