Fix crash in wxAuiNotebook after dragging a page

Fix using outdated click position in wxAuiTabCtrl mouse handlers, which
resulted in an invalid wxEVT_AUINOTEBOOK_DRAG_MOTION event being
generated and a crash while handling it.

Ensure that we reset m_clickPt when resetting m_isDragging too so that
we don't decide that we're dragging if the mouse enters the window with
the left button already pressed after a previous drag.

See #24027, #24039.

(cherry picked from commit f1a3816cd9da0c3c7ceebe9735d37fb2d3158388)
This commit is contained in:
Vadim Zeitlin 2023-11-05 23:50:51 +01:00
parent 4fab20cca1
commit f3bfd94bbf
2 changed files with 3 additions and 0 deletions

View File

@ -242,6 +242,7 @@ All:
All (GUI):
- Fix possible crash when dragging pages in wxAuiNotebook (#24027).
- Fix refreshing multiple selection items in generic wxListCtrl.
wxGTK:

View File

@ -1099,6 +1099,7 @@ void wxAuiTabCtrl::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
{
if (m_isDragging)
{
m_clickPt = wxDefaultPosition;
m_isDragging = false;
wxAuiNotebookEvent evt(wxEVT_AUINOTEBOOK_CANCEL_DRAG, m_windowId);
@ -1116,6 +1117,7 @@ void wxAuiTabCtrl::OnLeftUp(wxMouseEvent& evt)
if (m_isDragging)
{
m_clickPt = wxDefaultPosition;
m_isDragging = false;
wxAuiNotebookEvent e(wxEVT_AUINOTEBOOK_END_DRAG, m_windowId);