Fix user-visible with AUI tab selection after dragging

Selection at wxAuiNotebook level was not updated, resulting in all attempts to
select the tab at the same index as the tab that was dragged elsewhere being
ignored, e.g. after dragging the first tab to the second position in the AUI
sample, the first tab couldn't be selected again.

Fix this by always changing the selection in OnTabEndDrag(). This might not be
the best thing to do as the selection is also changed later in the code and
the fact that the code returns without sending the event is probably a bug
too, but for now at least fix the user-visible problem.

Closes #15071.
This commit is contained in:
Vadim Zeitlin 2016-04-23 18:49:36 +02:00
parent bb2b48f2ba
commit b1fcf100ff
2 changed files with 5 additions and 1 deletions

View File

@ -70,6 +70,7 @@ All (GUI):
- Add support for wxAuiManager and wxAuiPaneInfo to XRC (Andrea Zanellato).
- Add support for wxSL_MIN_MAX_LABELS and wxSL_VALUE_LABEL to XRC (ousnius).
- Update Scintilla to v3.6.3 (Paul Kulchenko).
- Fix bug with not being able to select AUI tab after dragging.
- Make wxDataViewCtrl::Expand() expand ancestors in native ports too.
- Add wxDataViewCtrl::SetHeaderAttr().
- Add wxListCtrl::SetHeaderAttr().

View File

@ -2678,7 +2678,10 @@ void wxAuiNotebook::OnTabEndDrag(wxAuiNotebookEvent& evt)
wxPoint mouse_screen_pt = ::wxGetMousePosition();
wxPoint mouse_client_pt = ScreenToClient(mouse_screen_pt);
// Update our selection (it may be updated again below but the code below
// can also return without doing anything else and this ensures that the
// selection is updated even then).
m_curPage = src_tabs->GetActivePage();
// check for an external move
if (m_flags & wxAUI_NB_TAB_EXTERNAL_MOVE)