mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-04 20:00:27 +02:00
SynEdit: Fix height of screen caret
git-svn-id: trunk@34667 -
This commit is contained in:
parent
7daa4be95a
commit
dfd850c0b7
@ -48,6 +48,7 @@ type
|
|||||||
procedure SetLeftChar(AValue: Integer);
|
procedure SetLeftChar(AValue: Integer);
|
||||||
procedure SetPadding(Side: TLazSynBorderSide; AValue: integer);
|
procedure SetPadding(Side: TLazSynBorderSide; AValue: integer);
|
||||||
procedure SetTopLine(AValue: TLinePos);
|
procedure SetTopLine(AValue: TLinePos);
|
||||||
|
procedure DoDrawerFontChanged(Sender: TObject);
|
||||||
protected
|
protected
|
||||||
procedure PaintTextLines(AClip: TRect; FirstLine, LastLine,
|
procedure PaintTextLines(AClip: TRect; FirstLine, LastLine,
|
||||||
FirstCol, LastCol: integer); virtual;
|
FirstCol, LastCol: integer); virtual;
|
||||||
@ -158,6 +159,11 @@ begin
|
|||||||
FTopLine := AValue;
|
FTopLine := AValue;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLazSynTextArea.DoDrawerFontChanged(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FontChanged;
|
||||||
|
end;
|
||||||
|
|
||||||
function TLazSynTextArea.ScreenColumnToXValue(Col: integer): integer;
|
function TLazSynTextArea.ScreenColumnToXValue(Col: integer): integer;
|
||||||
begin
|
begin
|
||||||
Result := FTextBounds.Left + (Col - LeftChar) * fCharWidth;
|
Result := FTextBounds.Left + (Col - LeftChar) * fCharWidth;
|
||||||
@ -194,6 +200,7 @@ var
|
|||||||
i: TLazSynBorderSide;
|
i: TLazSynBorderSide;
|
||||||
begin
|
begin
|
||||||
FTextDrawer := ATextDrawer;
|
FTextDrawer := ATextDrawer;
|
||||||
|
FTextDrawer.RegisterOnFontChangeHandler(@DoDrawerFontChanged);
|
||||||
FPaintLineColor := TSynSelectedColor.Create;
|
FPaintLineColor := TSynSelectedColor.Create;
|
||||||
FPaintLineColor2 := TSynSelectedColor.Create;
|
FPaintLineColor2 := TSynSelectedColor.Create;
|
||||||
for i := low(TLazSynBorderSide) to high(TLazSynBorderSide) do
|
for i := low(TLazSynBorderSide) to high(TLazSynBorderSide) do
|
||||||
@ -205,6 +212,7 @@ end;
|
|||||||
|
|
||||||
destructor TLazSynTextArea.Destroy;
|
destructor TLazSynTextArea.Destroy;
|
||||||
begin
|
begin
|
||||||
|
FTextDrawer.UnRegisterOnFontChangeHandler(@DoDrawerFontChanged);
|
||||||
FreeAndNil(FPaintLineColor);
|
FreeAndNil(FPaintLineColor);
|
||||||
FreeAndNil(FPaintLineColor2);
|
FreeAndNil(FPaintLineColor2);
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
|
@ -2223,7 +2223,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomSynEdit.FontChanged(Sender: TObject);
|
procedure TCustomSynEdit.FontChanged(Sender: TObject);
|
||||||
begin
|
begin // TODO: inherited ?
|
||||||
FLastSetFontSize := Font.Height;
|
FLastSetFontSize := Font.Height;
|
||||||
RecalcCharExtent;
|
RecalcCharExtent;
|
||||||
end;
|
end;
|
||||||
@ -7200,7 +7200,7 @@ begin
|
|||||||
FScreenCaret.Lock;
|
FScreenCaret.Lock;
|
||||||
try
|
try
|
||||||
FScreenCaret.CharWidth := CharWidth;
|
FScreenCaret.CharWidth := CharWidth;
|
||||||
FScreenCaret.CharHeight := LineHeight;
|
FScreenCaret.CharHeight := LineHeight - Max(0, ExtraLineSpacing);
|
||||||
SizeOrFontChanged(TRUE);
|
SizeOrFontChanged(TRUE);
|
||||||
finally
|
finally
|
||||||
FScreenCaret.UnLock;
|
FScreenCaret.UnLock;
|
||||||
|
Loading…
Reference in New Issue
Block a user