mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 02:19:29 +01:00 
			
		
		
		
	SynEdit: invalidate if Markup.enable changes. Issue #0028729
git-svn-id: trunk@49891 -
This commit is contained in:
		
							parent
							
								
									316207d5d9
								
							
						
					
					
						commit
						8c427fe657
					
				@ -52,6 +52,7 @@ type
 | 
			
		||||
    procedure DoLinesInWindoChanged(OldLinesInWindow : Integer); override;
 | 
			
		||||
    procedure DoTextChanged(StartLine, EndLine, ACountDiff: Integer); override;
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
    procedure DoVisibleChanged(AVisible: Boolean); override;
 | 
			
		||||
  public
 | 
			
		||||
    constructor Create(ASynEdit: TSynEditBase);
 | 
			
		||||
@ -174,6 +175,11 @@ begin
 | 
			
		||||
  InvalidateBracketHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupBracket.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  InvalidateBracketHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupBracket.DoVisibleChanged(AVisible: Boolean);
 | 
			
		||||
begin
 | 
			
		||||
  inherited DoVisibleChanged(AVisible);
 | 
			
		||||
 | 
			
		||||
@ -51,6 +51,8 @@ type
 | 
			
		||||
    procedure InternalUpdateCtrlMouse;
 | 
			
		||||
  protected
 | 
			
		||||
    procedure SetLines(const AValue : TSynEditStrings); override;
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
  public
 | 
			
		||||
    procedure UpdateCtrlState(aShift: TShiftState);
 | 
			
		||||
    procedure UpdateCtrlMouse;
 | 
			
		||||
@ -133,8 +135,8 @@ procedure TSynEditMarkupCtrlMouseLink.InternalUpdateCtrlMouse;
 | 
			
		||||
 | 
			
		||||
  procedure doNotShowLink;
 | 
			
		||||
  begin
 | 
			
		||||
    if CtrlMouseLine > 0 then
 | 
			
		||||
      TCustomSynEdit(SynEdit).Invalidate;
 | 
			
		||||
    if FCtrlMouseLine >= 0 then
 | 
			
		||||
      InvalidateSynLines(FCtrlMouseLine, FCtrlMouseLine);
 | 
			
		||||
    FCursor := crDefault;
 | 
			
		||||
    CtrlMouseLine:=-1;
 | 
			
		||||
    FCtrlLinkable := False;
 | 
			
		||||
@ -152,11 +154,13 @@ begin
 | 
			
		||||
       (NewX2 = CtrlMouseX2)
 | 
			
		||||
    then
 | 
			
		||||
      exit;
 | 
			
		||||
    if (FCtrlMouseLine >= 0) and (FCtrlMouseLine <> NewY) then
 | 
			
		||||
      InvalidateSynLines(FCtrlMouseLine, FCtrlMouseLine);
 | 
			
		||||
    FCtrlLinkable := TCustomSynEdit(SynEdit).IsLinkable(NewY, NewX1, NewX2);
 | 
			
		||||
    CtrlMouseLine := fLastMouseCaret.Y;
 | 
			
		||||
    CtrlMouseX1 := NewX1;
 | 
			
		||||
    CtrlMouseX2 := NewX2;
 | 
			
		||||
    TCustomSynEdit(SynEdit).Invalidate;
 | 
			
		||||
    InvalidateSynLines(FCtrlMouseLine, FCtrlMouseLine);
 | 
			
		||||
    if FCtrlLinkable then
 | 
			
		||||
      FCursor := crHandPoint
 | 
			
		||||
    else
 | 
			
		||||
@ -238,6 +242,21 @@ begin
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupCtrlMouseLink.DoMarkupChanged(AMarkup: TSynSelectedColor
 | 
			
		||||
  );
 | 
			
		||||
begin
 | 
			
		||||
  inherited DoMarkupChanged(AMarkup);
 | 
			
		||||
  if FCtrlMouseLine >= 0 then
 | 
			
		||||
    InvalidateSynLines(FCtrlMouseLine, FCtrlMouseLine);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupCtrlMouseLink.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  inherited DoEnabledChanged(Sender);
 | 
			
		||||
  if FCtrlMouseLine >= 0 then
 | 
			
		||||
    InvalidateSynLines(FCtrlMouseLine, FCtrlMouseLine);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TSynEditMarkupCtrlMouseLink.GetMarkupAttributeAtRowCol(const aRow: Integer;
 | 
			
		||||
  const aStartCol: TLazSynDisplayTokenBound; const AnRtlInfo: TLazSynDisplayRtlInfo): TSynSelectedColor;
 | 
			
		||||
begin
 | 
			
		||||
 | 
			
		||||
@ -147,6 +147,7 @@ type
 | 
			
		||||
    procedure DoTopLineChanged(OldTopLine : Integer); override;
 | 
			
		||||
    procedure DoLinesInWindoChanged(OldLinesInWindow : Integer); override;
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
    procedure DoTextChanged(StartLine, EndLine, ACountDiff: Integer); override; // 1 based
 | 
			
		||||
    procedure DoVisibleChanged(AVisible: Boolean); override;
 | 
			
		||||
    function  HasVisibleMatch: Boolean; // does not check, if in visible line range. Only Count and DideSingleMatch
 | 
			
		||||
@ -1968,6 +1969,11 @@ begin
 | 
			
		||||
  FMarkupEnabled := MarkupInfo.IsEnabled;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupHighlightAllBase.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  Invalidate;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TSynEditMarkupHighlightAllBase.GetMatchCount: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  Result := fMatches.Count;
 | 
			
		||||
 | 
			
		||||
@ -46,6 +46,7 @@ type
 | 
			
		||||
    procedure MarkupChangedIntern(AMarkup: TObject);
 | 
			
		||||
  protected
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
  public
 | 
			
		||||
    constructor Create(ASynEdit : TSynEditBase; ASelection: TSynEditSelection);
 | 
			
		||||
    destructor Destroy; override;
 | 
			
		||||
@ -106,6 +107,11 @@ begin
 | 
			
		||||
  InvalidateSynLines(p1.y, p2.y);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupSelection.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  DoMarkupChanged(nil);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
constructor TSynEditMarkupSelection.Create(ASynEdit : TSynEditBase; ASelection: TSynEditSelection);
 | 
			
		||||
begin
 | 
			
		||||
  inherited Create(ASynEdit);
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,7 @@ type
 | 
			
		||||
    procedure SetVisibleSpecialChars(AValue: TSynVisibleSpecialChars);
 | 
			
		||||
  protected
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
    function IsSpecial(pos: Integer): Boolean; inline;
 | 
			
		||||
  public
 | 
			
		||||
    constructor Create(ASynEdit : TSynEditBase);
 | 
			
		||||
@ -73,7 +74,13 @@ end;
 | 
			
		||||
procedure TSynEditMarkupSpecialChar.DoMarkupChanged(AMarkup: TSynSelectedColor);
 | 
			
		||||
begin
 | 
			
		||||
  inherited DoMarkupChanged(AMarkup);
 | 
			
		||||
  FHasMarkup := AMarkup.IsEnabled;
 | 
			
		||||
  FHasMarkup := RealEnabled;
 | 
			
		||||
  SynEdit.Invalidate;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupSpecialChar.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  FHasMarkup := RealEnabled;
 | 
			
		||||
  SynEdit.Invalidate;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -52,6 +52,7 @@ type
 | 
			
		||||
    procedure DoLinesInWindoChanged(OldLinesInWindow : Integer); override;
 | 
			
		||||
    procedure DoTextChanged(StartLine, EndLine, ACountDiff: Integer); override;
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
  public
 | 
			
		||||
    constructor Create(ASynEdit: TSynEditBase);
 | 
			
		||||
    destructor Destroy; override;
 | 
			
		||||
@ -122,6 +123,11 @@ begin
 | 
			
		||||
  InvalidateLineHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupSpecialLine.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  InvalidateLineHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TSynEditMarkupSpecialLine.RealEnabled: Boolean;
 | 
			
		||||
begin
 | 
			
		||||
  Result := Enabled and
 | 
			
		||||
 | 
			
		||||
@ -56,6 +56,7 @@ type
 | 
			
		||||
    procedure DoLinesInWindoChanged(OldLinesInWindow : Integer); override;
 | 
			
		||||
    procedure DoTextChanged(StartLine, EndLine, ACountDiff: Integer); override;
 | 
			
		||||
    procedure DoMarkupChanged(AMarkup: TSynSelectedColor); override;
 | 
			
		||||
    procedure DoEnabledChanged(Sender: TObject); override;
 | 
			
		||||
    procedure DoVisibleChanged(AVisible: Boolean); override;
 | 
			
		||||
    procedure InvalidateCurrentHighlight;
 | 
			
		||||
  public
 | 
			
		||||
@ -331,6 +332,12 @@ begin
 | 
			
		||||
  InvalidateCurrentHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupWordGroup.DoEnabledChanged(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  FForceInvalidate := True;
 | 
			
		||||
  InvalidateCurrentHighlight;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TSynEditMarkupWordGroup.DoVisibleChanged(AVisible: Boolean);
 | 
			
		||||
begin
 | 
			
		||||
  inherited DoVisibleChanged(AVisible);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user