selection bug fixed in wxAuiNotebook

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Benjamin Williams
2006-11-26 18:38:36 +00:00
parent 793d436530
commit 68fd4f2c14

View File

@@ -2005,7 +2005,11 @@ void wxAuiTabCtrl::OnLeftDown(wxMouseEvent& evt)
{
int new_selection = GetIdxFromWindow(wnd);
if (new_selection != GetActivePage())
// wxAuiNotebooks always want to receive this event
// even if the tab is already active, because they may
// have multiple tab controls
if (new_selection != GetActivePage() ||
GetParent()->IsKindOf(CLASSINFO(wxAuiNotebook)))
{
wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, m_windowId);
e.SetSelection(new_selection);
@@ -2766,6 +2770,10 @@ int wxAuiNotebook::GetSelection() const
// SetSelection() sets the currently active page
size_t wxAuiNotebook::SetSelection(size_t new_page)
{
// don't change the page unless necessary
if (new_page == m_curpage)
return m_curpage;
wxWindow* wnd = m_tabs.GetWindowFromIdx(new_page);
if (!wnd)
return m_curpage;
@@ -3275,6 +3283,10 @@ void wxAuiNotebook::OnTabEndDrag(wxCommandEvent& command_evt)
dest_tabs->DoShowHide();
dest_tabs->Refresh();
// force the set selection function reset the selection
m_curpage = -1;
// set the active page to the one we just split off
SetSelection(m_tabs.GetIdxFromWindow(page_info.window));
UpdateHintWindowSize();