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:
parent
4fab20cca1
commit
f3bfd94bbf
@ -242,6 +242,7 @@ All:
|
|||||||
|
|
||||||
All (GUI):
|
All (GUI):
|
||||||
|
|
||||||
|
- Fix possible crash when dragging pages in wxAuiNotebook (#24027).
|
||||||
- Fix refreshing multiple selection items in generic wxListCtrl.
|
- Fix refreshing multiple selection items in generic wxListCtrl.
|
||||||
|
|
||||||
wxGTK:
|
wxGTK:
|
||||||
|
@ -1099,6 +1099,7 @@ void wxAuiTabCtrl::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
|
|||||||
{
|
{
|
||||||
if (m_isDragging)
|
if (m_isDragging)
|
||||||
{
|
{
|
||||||
|
m_clickPt = wxDefaultPosition;
|
||||||
m_isDragging = false;
|
m_isDragging = false;
|
||||||
|
|
||||||
wxAuiNotebookEvent evt(wxEVT_AUINOTEBOOK_CANCEL_DRAG, m_windowId);
|
wxAuiNotebookEvent evt(wxEVT_AUINOTEBOOK_CANCEL_DRAG, m_windowId);
|
||||||
@ -1116,6 +1117,7 @@ void wxAuiTabCtrl::OnLeftUp(wxMouseEvent& evt)
|
|||||||
|
|
||||||
if (m_isDragging)
|
if (m_isDragging)
|
||||||
{
|
{
|
||||||
|
m_clickPt = wxDefaultPosition;
|
||||||
m_isDragging = false;
|
m_isDragging = false;
|
||||||
|
|
||||||
wxAuiNotebookEvent e(wxEVT_AUINOTEBOOK_END_DRAG, m_windowId);
|
wxAuiNotebookEvent e(wxEVT_AUINOTEBOOK_END_DRAG, m_windowId);
|
||||||
|
Loading…
Reference in New Issue
Block a user