mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-16 16:39:34 +02:00
SynEdit: syncompletion: improve High-DPI scaling. Issue #33694
git-svn-id: trunk@57826 -
This commit is contained in:
parent
51ef1a6866
commit
1364b3311b
@ -96,6 +96,8 @@ type
|
||||
private
|
||||
FMouseDownPos, FMouseLastPos, FWinSize: TPoint;
|
||||
protected
|
||||
procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||
const AXProportion, AYProportion: Double); override;
|
||||
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
||||
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
|
||||
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
|
||||
@ -104,6 +106,12 @@ type
|
||||
procedure Paint; override;
|
||||
end;
|
||||
|
||||
TSynBaseCompletionFormScrollBar = class(TScrollBar)
|
||||
protected
|
||||
procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
|
||||
const AXProportion, AYProportion: Double); override;
|
||||
end;
|
||||
|
||||
{ TSynBaseCompletionForm }
|
||||
|
||||
TSynBaseCompletionForm = class(TForm)
|
||||
@ -475,6 +483,16 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{ TSynBaseCompletionFormScrollBar }
|
||||
|
||||
procedure TSynBaseCompletionFormScrollBar.DoAutoAdjustLayout(
|
||||
const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double
|
||||
);
|
||||
begin
|
||||
if AMode in [lapAutoAdjustWithoutHorizontalScrolling, lapAutoAdjustForDPI] then
|
||||
Width := ScaleScreenToFont(GetSystemMetrics(SM_CYVSCROLL));
|
||||
end;
|
||||
|
||||
{ TSynCompletionForm }
|
||||
|
||||
procedure TSynCompletionForm.AddCharAtCursor(AUtf8Char: TUTF8Char);
|
||||
@ -548,6 +566,13 @@ begin
|
||||
FMouseDownPos.y := -1;
|
||||
end;
|
||||
|
||||
procedure TSynBaseCompletionFormSizeDrag.DoAutoAdjustLayout(
|
||||
const AMode: TLayoutAdjustmentPolicy; const AXProportion, AYProportion: Double
|
||||
);
|
||||
begin
|
||||
// do nothing
|
||||
end;
|
||||
|
||||
procedure TSynBaseCompletionFormSizeDrag.Paint;
|
||||
var
|
||||
I: Integer;
|
||||
@ -579,7 +604,7 @@ begin
|
||||
// we have no resource => must be constructed using CreateNew
|
||||
inherited CreateNew(AOwner, 1);
|
||||
FItemList := TStringList.Create;
|
||||
Scroll := TScrollBar.Create(self);
|
||||
Scroll := TSynBaseCompletionFormScrollBar.Create(self);
|
||||
Scroll.Kind := sbVertical;
|
||||
Scroll.OnChange := @ScrollChange;
|
||||
Scroll.Parent := Self;
|
||||
@ -587,8 +612,6 @@ begin
|
||||
Scroll.OnScroll := @ScrollScroll;
|
||||
Scroll.TabStop := False;
|
||||
Scroll.Visible := True;
|
||||
if Application.Scaled then
|
||||
Scroll.Width := ScaleScreenTo96(GetSystemMetrics(SM_CYVSCROLL));
|
||||
|
||||
SizeDrag := TSynBaseCompletionFormSizeDrag.Create(Self);
|
||||
SizeDrag.Parent := Self;
|
||||
|
Loading…
Reference in New Issue
Block a user