SynEdit: Fix height of screen caret

git-svn-id: trunk@34667 -
This commit is contained in:
martin 2012-01-08 17:07:03 +00:00
parent 7daa4be95a
commit dfd850c0b7
2 changed files with 10 additions and 2 deletions

View File

@ -48,6 +48,7 @@ type
procedure SetLeftChar(AValue: Integer);
procedure SetPadding(Side: TLazSynBorderSide; AValue: integer);
procedure SetTopLine(AValue: TLinePos);
procedure DoDrawerFontChanged(Sender: TObject);
protected
procedure PaintTextLines(AClip: TRect; FirstLine, LastLine,
FirstCol, LastCol: integer); virtual;
@ -158,6 +159,11 @@ begin
FTopLine := AValue;
end;
procedure TLazSynTextArea.DoDrawerFontChanged(Sender: TObject);
begin
FontChanged;
end;
function TLazSynTextArea.ScreenColumnToXValue(Col: integer): integer;
begin
Result := FTextBounds.Left + (Col - LeftChar) * fCharWidth;
@ -194,6 +200,7 @@ var
i: TLazSynBorderSide;
begin
FTextDrawer := ATextDrawer;
FTextDrawer.RegisterOnFontChangeHandler(@DoDrawerFontChanged);
FPaintLineColor := TSynSelectedColor.Create;
FPaintLineColor2 := TSynSelectedColor.Create;
for i := low(TLazSynBorderSide) to high(TLazSynBorderSide) do
@ -205,6 +212,7 @@ end;
destructor TLazSynTextArea.Destroy;
begin
FTextDrawer.UnRegisterOnFontChangeHandler(@DoDrawerFontChanged);
FreeAndNil(FPaintLineColor);
FreeAndNil(FPaintLineColor2);
inherited Destroy;

View File

@ -2223,7 +2223,7 @@ begin
end;
procedure TCustomSynEdit.FontChanged(Sender: TObject);
begin
begin // TODO: inherited ?
FLastSetFontSize := Font.Height;
RecalcCharExtent;
end;
@ -7200,7 +7200,7 @@ begin
FScreenCaret.Lock;
try
FScreenCaret.CharWidth := CharWidth;
FScreenCaret.CharHeight := LineHeight;
FScreenCaret.CharHeight := LineHeight - Max(0, ExtraLineSpacing);
SizeOrFontChanged(TRUE);
finally
FScreenCaret.UnLock;