Reactivate TSynHotKey again, after removing it accidentally in recent SynEdit update. Should fix a crashing preferences dialog.

This commit is contained in:
Ansgar Becker
2018-01-02 19:06:52 +01:00
parent 36c5d90d39
commit e6111ef577
2 changed files with 17 additions and 1 deletions

View File

@ -372,6 +372,9 @@ type
FInvalidKeys: THKInvalidKeys; FInvalidKeys: THKInvalidKeys;
FModifiers: THKModifiers; FModifiers: THKModifiers;
FPressedOnlyModifiers: Boolean; FPressedOnlyModifiers: Boolean;
FOnChange: TNotifyEvent;
FOnEnter: TNotifyEvent;
FOnExit: TNotifyEvent;
procedure SetBorderStyle(const Value: TSynBorderStyle); procedure SetBorderStyle(const Value: TSynBorderStyle);
procedure SetHotKey(const Value: TShortCut); procedure SetHotKey(const Value: TShortCut);
procedure SetInvalidKeys(const Value: THKInvalidKeys); procedure SetInvalidKeys(const Value: THKInvalidKeys);
@ -404,6 +407,9 @@ type
property HotKey: TShortCut read FHotKey write SetHotKey default $0041; { Alt+A } property HotKey: TShortCut read FHotKey write SetHotKey default $0041; { Alt+A }
property InvalidKeys: THKInvalidKeys read FInvalidKeys write SetInvalidKeys default [hcNone, hcShift]; property InvalidKeys: THKInvalidKeys read FInvalidKeys write SetInvalidKeys default [hcNone, hcShift];
property Modifiers: THKModifiers read FModifiers write SetModifiers default [hkAlt]; property Modifiers: THKModifiers read FModifiers write SetModifiers default [hkAlt];
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
end; end;
TSynEditSearchCustom = class(TComponent) TSynEditSearchCustom = class(TComponent)
@ -1604,6 +1610,8 @@ begin
end; end;
Key := SavedKey; Key := SavedKey;
if Assigned(FOnChange) then
FOnChange(Self);
end; end;
procedure TSynHotKey.KeyUp(var Key: Word; Shift: TShiftState); procedure TSynHotKey.KeyUp(var Key: Word; Shift: TShiftState);
@ -1652,6 +1660,10 @@ begin
Canvas.Brush.Color := Color; Canvas.Brush.Color := Color;
InflateRect(r, -BorderWidth, -BorderWidth); InflateRect(r, -BorderWidth, -BorderWidth);
Canvas.FillRect(r); Canvas.FillRect(r);
if Enabled then
Canvas.Font.Color := clWindowText
else
Canvas.Font.Color := clGrayText;
TextRect(Canvas, r, BorderWidth + 1, BorderWidth + 1, Text); TextRect(Canvas, r, BorderWidth + 1, BorderWidth + 1, Text);
end; end;
@ -1716,6 +1728,8 @@ end;
procedure TSynHotKey.WMKillFocus(var Msg: TWMKillFocus); procedure TSynHotKey.WMKillFocus(var Msg: TWMKillFocus);
begin begin
DestroyCaret; DestroyCaret;
if Assigned(FOnExit) then
FOnExit(Self);
end; end;
procedure TSynHotKey.WMSetFocus(var Msg: TWMSetFocus); procedure TSynHotKey.WMSetFocus(var Msg: TWMSetFocus);
@ -1724,6 +1738,8 @@ begin
CreateCaret(Handle, 0, 1, -Canvas.Font.Height + 2); CreateCaret(Handle, 0, 1, -Canvas.Font.Height + 2);
SetCaretPos(BorderWidth + 1 + TextWidth(Canvas, Text), BorderWidth + 1); SetCaretPos(BorderWidth + 1 + TextWidth(Canvas, Text), BorderWidth + 1);
ShowCaret(Handle); ShowCaret(Handle);
if Assigned(FOnEnter) then
FOnEnter(Self);
end; end;
{$ENDIF} {$ENDIF}

View File

@ -255,7 +255,7 @@ begin
TSynExporterTeX, TSynEditPythonBehaviour, TSynMultiSyn, TSynExporterTeX, TSynEditPythonBehaviour, TSynMultiSyn,
TSynCompletionProposal, TSynAutoComplete, TSynMacroRecorder, TSynCompletionProposal, TSynAutoComplete, TSynMacroRecorder,
TSynEditPrint, TSynEditPrintPreview, TSynAutoCorrect, TSynEditPrint, TSynEditPrintPreview, TSynAutoCorrect,
TSynEditSearch, TSynEditRegexSearch, TSynEditOptionsDialog, TSynURIOpener, TSynEditSearch, TSynEditRegexSearch, TSynEditOptionsDialog, TSynURIOpener, TSynHotKey,
TSynEditDocumentManager]); TSynEditDocumentManager]);
{$IFDEF SYN_COMPILER_4_UP} {$IFDEF SYN_COMPILER_4_UP}
RegisterComponents(SYNS_ComponentsPage, [TSynHighlighterManager]); RegisterComponents(SYNS_ComponentsPage, [TSynHighlighterManager]);