From 516f4b7698d72ef416357d0220bb5e0ff605a1cd Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 28 Feb 2015 16:03:30 +0000 Subject: [PATCH] SynEdit: ignore mouse up, from clicks to other windows: issue #0027541 git-svn-id: trunk@48050 - --- components/synedit/synedit.pp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/synedit/synedit.pp b/components/synedit/synedit.pp index 935f5e49ba..4f19f16484 100644 --- a/components/synedit/synedit.pp +++ b/components/synedit/synedit.pp @@ -187,7 +187,7 @@ type sfAfterLoadFromFileNeeded, // Mouse-states sfLeftGutterClick, sfRightGutterClick, - sfDblClicked, sfTripleClicked, sfQuadClicked, + sfInClick, sfDblClicked, sfTripleClicked, sfQuadClicked, sfWaitForDragging, sfIsDragging, sfWaitForMouseSelecting, sfMouseSelecting, sfMouseDoneSelecting, sfIgnoreUpClick, sfSelChanged @@ -3389,6 +3389,8 @@ begin sfWaitForDragging, sfIgnoreUpClick ]; + Include(fStateFlags, sfInClick); + if ssQuad in Shift then begin CType := ccQuad; Include(fStateFlags, sfQuadClicked); @@ -3650,22 +3652,21 @@ begin fScrollTimer.Enabled := False; inherited MouseUp(Button, Shift, X, Y); MouseCapture := False; + if not (sfInClick in fStateFlags) then + exit; if sfQuadClicked in fStateFlags then begin CType := ccQuad; - Include(fStateFlags, sfQuadClicked); end else if sfTripleClicked in fStateFlags then begin CType := ccTriple; - Include(fStateFlags, sfTripleClicked); end else if sfDblClicked in fStateFlags then begin CType := ccDouble; - Include(fStateFlags, sfDblClicked); end else CType := ccSingle; - fStateFlags:=fStateFlags - [sfDblClicked,sfTripleClicked,sfQuadClicked]; + fStateFlags:=fStateFlags - [sfInClick, sfDblClicked,sfTripleClicked,sfQuadClicked]; if sfWaitForDragging in fStateFlags then begin @@ -4721,6 +4722,7 @@ procedure TCustomSynEdit.WMKillFocus(var Msg: TWMKillFocus); begin if fCaret = nil then exit; // This SynEdit is in Destroy Exclude(FStateFlags, sfHideCursor); + Exclude(fStateFlags, sfInClick); {$IFDEF VerboseFocus} DebugLn(['[TCustomSynEdit.WMKillFocus] A ',DbgSName(Self), ' time=', dbgs(Now*86640)]); {$ENDIF}