IDE: fix editor debug marks painting in high-dpi

git-svn-id: trunk@58328 -
This commit is contained in:
ondrej 2018-06-19 11:12:56 +00:00
parent 5d96eac5ae
commit bf30f6c5f4

View File

@ -48,7 +48,7 @@ uses
{$ENDIF} {$ENDIF}
Classes, SysUtils, Classes, SysUtils,
// LCL // LCL
Controls, LCLProc, LCLType, Graphics, Menus, Controls, LCLProc, LCLType, Graphics, Menus, ImgList,
// synedit // synedit
SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks, SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks,
SynEditTypes, SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynEditTypes, SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks,
@ -2232,6 +2232,7 @@ var
var var
itop : Longint; itop : Longint;
LineHeight: LongInt; LineHeight: LongInt;
img: TScaledImageListResolution;
begin begin
if Line < 0 then Exit; if Line < 0 then Exit;
if Assigned(FBookMarkOpt.BookmarkImages) and if Assigned(FBookMarkOpt.BookmarkImages) and
@ -2239,11 +2240,12 @@ var
(DebugMarksImageIndex >= 0) then (DebugMarksImageIndex >= 0) then
begin begin
LineHeight := TSynEdit(SynEdit).LineHeight; LineHeight := TSynEdit(SynEdit).LineHeight;
img := GetImgListRes(Canvas, FBookMarkOpt.BookmarkImages);
iTop := 0; iTop := 0;
if LineHeight > FBookMarkOpt.BookmarkImages.Height then if LineHeight > img.Height then
iTop := (LineHeight - FBookMarkOpt.BookmarkImages.Height) div 2; iTop := (LineHeight - img.Height) div 2;
FBookMarkOpt.BookmarkImages.Draw img.Draw
(Canvas, AClip.Left + FBookMarkOpt.LeftMargin + aGutterOffs * ColumnWidth, (Canvas, AClip.Left + FBookMarkOpt.LeftMargin + aGutterOffs * ColumnWidth,
AClip.Top + iTop, DebugMarksImageIndex, True); AClip.Top + iTop, DebugMarksImageIndex, True);
end end