From 4d02625ccfecc288c28517d07c35edd9cbfaeb11 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 22 May 2006 21:38:59 +0000 Subject: [PATCH] Changes to ensure that the potential drag is totally cleaned up in LeftButtonUp git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/src/stc/ScintillaWX.cpp | 11 +++++++---- src/stc/ScintillaWX.cpp | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/contrib/src/stc/ScintillaWX.cpp b/contrib/src/stc/ScintillaWX.cpp index 2a39569a98..2d793a9157 100644 --- a/contrib/src/stc/ScintillaWX.cpp +++ b/contrib/src/stc/ScintillaWX.cpp @@ -328,16 +328,17 @@ void ScintillaWX::SetTicking(bool on) { void ScintillaWX::SetMouseCapture(bool on) { if (mouseDownCaptures) { - if (on && !capturedMouse) + if (on && !stc->HasCapture()) stc->CaptureMouse(); - else if (!on && capturedMouse && stc->HasCapture()) + else if (!on && stc->HasCapture()) stc->ReleaseMouse(); - capturedMouse = on; + capturedMouse = stc->HasCapture(); } } bool ScintillaWX::HaveMouseCapture() { + capturedMouse = stc->HasCapture(); return capturedMouse; } @@ -827,13 +828,15 @@ void ScintillaWX::DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, b } void ScintillaWX::DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl) { + ButtonUp(pt, curTime, ctrl); #if wxUSE_DRAG_AND_DROP if (startDragTimer->IsRunning()) { startDragTimer->Stop(); + SetDragPosition(invalidPosition); SetEmptySelection(PositionFromLocation(pt)); + ShowCaretAtCurrentPosition(); } #endif // wxUSE_DRAG_AND_DROP - ButtonUp(pt, curTime, ctrl); } void ScintillaWX::DoLeftButtonMove(Point pt) { diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp index 2a39569a98..2d793a9157 100644 --- a/src/stc/ScintillaWX.cpp +++ b/src/stc/ScintillaWX.cpp @@ -328,16 +328,17 @@ void ScintillaWX::SetTicking(bool on) { void ScintillaWX::SetMouseCapture(bool on) { if (mouseDownCaptures) { - if (on && !capturedMouse) + if (on && !stc->HasCapture()) stc->CaptureMouse(); - else if (!on && capturedMouse && stc->HasCapture()) + else if (!on && stc->HasCapture()) stc->ReleaseMouse(); - capturedMouse = on; + capturedMouse = stc->HasCapture(); } } bool ScintillaWX::HaveMouseCapture() { + capturedMouse = stc->HasCapture(); return capturedMouse; } @@ -827,13 +828,15 @@ void ScintillaWX::DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, b } void ScintillaWX::DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl) { + ButtonUp(pt, curTime, ctrl); #if wxUSE_DRAG_AND_DROP if (startDragTimer->IsRunning()) { startDragTimer->Stop(); + SetDragPosition(invalidPosition); SetEmptySelection(PositionFromLocation(pt)); + ShowCaretAtCurrentPosition(); } #endif // wxUSE_DRAG_AND_DROP - ButtonUp(pt, curTime, ctrl); } void ScintillaWX::DoLeftButtonMove(Point pt) { -- 2.45.2