X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e30d94eff7dca642729cb2f557650e8f2ebc61f..4381c90d1f2546c4f495ecad93c5338919809872:/src/aui/auibook.cpp diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index 30691c1c03..2b64833d72 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -1233,10 +1233,9 @@ void wxAuiTabCtrl::OnMotion(wxMouseEvent& evt) } } - wxWindow* wnd = NULL; - #if wxUSE_TOOLTIPS - if (evt.Moving() && TabHitTest(evt.m_x, evt.m_y, &wnd)) + wxWindow* wnd = NULL; + if (evt.Moving() && TabHitTest(evt.m_x, evt.m_y, &wnd)) { wxString tooltip(m_pages[GetIdxFromWindow(wnd)].tooltip); @@ -1247,8 +1246,8 @@ void wxAuiTabCtrl::OnMotion(wxMouseEvent& evt) } else UnsetToolTip(); -#endif - +#endif // wxUSE_TOOLTIPS + if (!evt.LeftIsDown() || m_clickPt == wxDefaultPosition) return; @@ -2483,8 +2482,19 @@ void wxAuiNotebook::OnTabClicked(wxAuiNotebookEvent& evt) SetSelectionToWindow(wnd); } -void wxAuiNotebook::OnTabBgDClick(wxAuiNotebookEvent& WXUNUSED(evt)) +void wxAuiNotebook::OnTabBgDClick(wxAuiNotebookEvent& evt) { + // select the tab ctrl which received the db click + int selection; + wxWindow* wnd; + wxAuiTabCtrl* ctrl = (wxAuiTabCtrl*)evt.GetEventObject(); + if ( (ctrl != NULL) + && ((selection = ctrl->GetActivePage()) != wxNOT_FOUND) + && ((wnd = ctrl->GetWindowFromIdx(selection)) != NULL)) + { + SetSelectionToWindow(wnd); + } + // notify owner that the tabbar background has been double-clicked wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, m_windowId); e.SetEventObject(this); @@ -2542,6 +2552,7 @@ void wxAuiNotebook::OnTabDragMotion(wxAuiNotebookEvent& evt) wxWindow* src_tab = dest_tabs->GetWindowFromIdx(src_idx); dest_tabs->MovePage(src_tab, dest_idx); + m_tabs.MovePage(m_tabs.GetPage(src_idx).window, dest_idx); dest_tabs->SetActivePage((size_t)dest_idx); dest_tabs->DoShowHide(); dest_tabs->Refresh(); @@ -2726,7 +2737,7 @@ void wxAuiNotebook::OnTabEndDrag(wxAuiNotebookEvent& evt) if (insert_idx == -1) insert_idx = dest_tabs->GetPageCount(); dest_tabs->InsertPage(page_info.window, page_info, insert_idx); - nb->m_tabs.AddPage(page_info.window, page_info); + nb->m_tabs.InsertPage(page_info.window, page_info, insert_idx); nb->DoSizing(); dest_tabs->DoShowHide();