Browse Source

Remove TFPMemo flickering of selected text while mouse button is still pressed.

Margers 5 months ago
parent
commit
3be1c08516
1 changed files with 13 additions and 6 deletions
  1. 13 6
      packages/ide/weditor.pas

+ 13 - 6
packages/ide/weditor.pas

@@ -3724,7 +3724,7 @@ var DontClear : boolean;
   end;
 type TCCAction = (ccCheck,ccClear,ccDontCare);
 var
-  StartP,P: TPoint;
+  StartP,P,PrevP: TPoint;
   E: TEvent;
   OldEvent : PEvent;
   CCAction: TCCAction;
@@ -3753,13 +3753,20 @@ begin
           GetMousePos(P);
           StartP:=P;
           SetCurPtr(P.X,P.Y);
+          PrevP.X:=-1; { first time previous point is different }
           repeat
             GetMousePos(P);
-            SetCurPtr(P.X,P.Y);
-            if PointOfs(P)<PointOfs(StartP)
-               then SetSelection(P,StartP)
-               else SetSelection(StartP,P);
-            DrawView;
+            if (P.X<>PrevP.X) or (P.Y<>PrevP.Y) then
+            begin
+              Lock;
+              SetCurPtr(P.X,P.Y);
+              PrevP:=P;
+              if PointOfs(P)<PointOfs(StartP)
+                 then SetSelection(P,StartP)
+                 else SetSelection(StartP,P);
+              DrawView;
+              UnLock;
+            end;
           until not MouseEvent(Event, evMouseMove+evMouseAuto);
           DrawView;
           ClearEvent(Event);