mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-05 01:41:35 +02:00
SynEdit: Fix SynCompletion from un-setting eoPersistenCaret. Issue #17288
git-svn-id: trunk@27215 -
This commit is contained in:
parent
3e3bcedcc2
commit
647bcccde4
@ -193,7 +193,7 @@ type
|
|||||||
TSynBaseCompletion = class(TComponent)
|
TSynBaseCompletion = class(TComponent)
|
||||||
private
|
private
|
||||||
Form: TSynBaseCompletionForm;
|
Form: TSynBaseCompletionForm;
|
||||||
OldPersistentCaret: boolean;
|
FAddedPersistentCaret: boolean;
|
||||||
FOnExecute: TNotifyEvent;
|
FOnExecute: TNotifyEvent;
|
||||||
FWidth: Integer;
|
FWidth: Integer;
|
||||||
function GetCaseSensitive: boolean;
|
function GetCaseSensitive: boolean;
|
||||||
@ -978,8 +978,11 @@ procedure TSynBaseCompletion.Execute(s: string; x, y: integer);
|
|||||||
var
|
var
|
||||||
CurSynEdit: TSynEdit;
|
CurSynEdit: TSynEdit;
|
||||||
begin
|
begin
|
||||||
//writeln('');
|
|
||||||
//writeln('TSynBaseCompletion.Execute ',Form.CurrentEditor.Name);
|
//writeln('TSynBaseCompletion.Execute ',Form.CurrentEditor.Name);
|
||||||
|
|
||||||
|
//Todo: This is dangerous, if other plugins also change/changed the flag.
|
||||||
|
FAddedPersistentCaret := False;
|
||||||
|
|
||||||
CurrentString := s;
|
CurrentString := s;
|
||||||
if Assigned(OnExecute) then
|
if Assigned(OnExecute) then
|
||||||
OnExecute(Self);
|
OnExecute(Self);
|
||||||
@ -994,8 +997,9 @@ begin
|
|||||||
|
|
||||||
if (Form.CurrentEditor is TSynEdit) then begin
|
if (Form.CurrentEditor is TSynEdit) then begin
|
||||||
CurSynEdit:=TSynEdit(Form.CurrentEditor);
|
CurSynEdit:=TSynEdit(Form.CurrentEditor);
|
||||||
OldPersistentCaret:=eoPersistentCaret in CurSynEdit.Options;
|
FAddedPersistentCaret := not(eoPersistentCaret in CurSynEdit.Options);
|
||||||
CurSynEdit.Options:=CurSynEdit.Options+[eoPersistentCaret];
|
if FAddedPersistentCaret then
|
||||||
|
CurSynEdit.Options:=CurSynEdit.Options+[eoPersistentCaret];
|
||||||
end;
|
end;
|
||||||
Form.SetBounds(x,y,Form.Width,Form.Height);
|
Form.SetBounds(x,y,Form.Width,Form.Height);
|
||||||
Form.Show;
|
Form.Show;
|
||||||
@ -1165,8 +1169,9 @@ procedure TSynBaseCompletion.Deactivate;
|
|||||||
var
|
var
|
||||||
CurSynEdit: TSynEdit;
|
CurSynEdit: TSynEdit;
|
||||||
begin
|
begin
|
||||||
if (not OldPersistentCaret)
|
if FAddedPersistentCaret and
|
||||||
and (Form<>nil) and (Form.CurrentEditor is TSynEdit) then begin
|
(Form<>nil) and (Form.CurrentEditor is TSynEdit)
|
||||||
|
then begin
|
||||||
CurSynEdit:=TSynEdit(Form.CurrentEditor);
|
CurSynEdit:=TSynEdit(Form.CurrentEditor);
|
||||||
CurSynEdit.Options:=CurSynEdit.Options-[eoPersistentCaret];
|
CurSynEdit.Options:=CurSynEdit.Options-[eoPersistentCaret];
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user