mirror of https://gitlab.com/basile.b/dexed.git
fix, bug described in bdc7626b26, focus event, too much updates.
the docFocused event is still called but the observers does not always perform their updates
This commit is contained in:
parent
e9c6de2700
commit
f211d3533f
|
|
@ -186,6 +186,7 @@ end;
|
||||||
|
|
||||||
procedure TCEEditorWidget.docFocused(aDoc: TCESynMemo);
|
procedure TCEEditorWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if aDoc = fDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
focusedEditorChanged;
|
focusedEditorChanged;
|
||||||
beginUpdateByDelay;
|
beginUpdateByDelay;
|
||||||
|
|
@ -234,7 +235,6 @@ begin
|
||||||
macRecorder.Editor := fDoc;
|
macRecorder.Editor := fDoc;
|
||||||
fSyncEdit.Editor := fDoc;
|
fSyncEdit.Editor := fDoc;
|
||||||
completion.Editor := fDoc;
|
completion.Editor := fDoc;
|
||||||
//TODO-cbugfix: prevent completion to steal the focus, this trigs too much updates after Ctrl+Space
|
|
||||||
if (pageControl.ActivePage.Caption = '') then
|
if (pageControl.ActivePage.Caption = '') then
|
||||||
begin
|
begin
|
||||||
fKeyChanged := true;
|
fKeyChanged := true;
|
||||||
|
|
|
||||||
|
|
@ -364,6 +364,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.projFocused(aProject: TCEProject);
|
procedure TCEMessagesWidget.projFocused(aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
|
if fProj = aProject then exit;
|
||||||
fProj := aProject;
|
fProj := aProject;
|
||||||
filterMessages(fCtxt);
|
filterMessages(fCtxt);
|
||||||
end;
|
end;
|
||||||
|
|
@ -394,6 +395,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.docFocused(aDoc: TCESynMemo);
|
procedure TCEMessagesWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if fDoc = aDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
filterMessages(fCtxt);
|
filterMessages(fCtxt);
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ type
|
||||||
procedure cbToFindChange(Sender: TObject);
|
procedure cbToFindChange(Sender: TObject);
|
||||||
procedure chkEnableRepChange(Sender: TObject);
|
procedure chkEnableRepChange(Sender: TObject);
|
||||||
private
|
private
|
||||||
fEditor: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fToFind: string;
|
fToFind: string;
|
||||||
fReplaceWth: string;
|
fReplaceWth: string;
|
||||||
fActFindNext, fActReplaceNext: TAction;
|
fActFindNext, fActReplaceNext: TAction;
|
||||||
|
|
@ -187,28 +187,28 @@ end;
|
||||||
|
|
||||||
procedure TCESearchWidget.actFindNextExecute(sender: TObject);
|
procedure TCESearchWidget.actFindNextExecute(sender: TObject);
|
||||||
begin
|
begin
|
||||||
if fEditor = nil then exit;
|
if fDoc = nil then exit;
|
||||||
//
|
//
|
||||||
fSearchMru.Insert(0,fToFind);
|
fSearchMru.Insert(0,fToFind);
|
||||||
if not chkFromCur.Checked then
|
if not chkFromCur.Checked then
|
||||||
begin
|
begin
|
||||||
if chkBack.Checked then
|
if chkBack.Checked then
|
||||||
fEditor.CaretXY := Point(high(Integer), high(Integer))
|
fDoc.CaretXY := Point(high(Integer), high(Integer))
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if not fHasRestarted then
|
if not fHasRestarted then
|
||||||
fEditor.CaretXY := Point(0,0);
|
fDoc.CaretXY := Point(0,0);
|
||||||
fHasRestarted := true;
|
fHasRestarted := true;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else if fHasSearched then
|
else if fHasSearched then
|
||||||
begin
|
begin
|
||||||
if chkBack.Checked then
|
if chkBack.Checked then
|
||||||
fEditor.CaretX := fEditor.CaretX - 1
|
fDoc.CaretX := fDoc.CaretX - 1
|
||||||
else
|
else
|
||||||
fEditor.CaretX := fEditor.CaretX + length(fToFind);
|
fDoc.CaretX := fDoc.CaretX + length(fToFind);
|
||||||
end;
|
end;
|
||||||
if fEditor.SearchReplace(fToFind, '', getOptions) = 0 then
|
if fDoc.SearchReplace(fToFind, '', getOptions) = 0 then
|
||||||
dlgOkInfo('the expression cannot be found')
|
dlgOkInfo('the expression cannot be found')
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
|
@ -221,29 +221,29 @@ end;
|
||||||
|
|
||||||
procedure TCESearchWidget.actReplaceNextExecute(sender: TObject);
|
procedure TCESearchWidget.actReplaceNextExecute(sender: TObject);
|
||||||
begin
|
begin
|
||||||
if fEditor = nil then exit;
|
if fDoc = nil then exit;
|
||||||
//
|
//
|
||||||
fSearchMru.Insert(0, fToFind);
|
fSearchMru.Insert(0, fToFind);
|
||||||
fReplaceMru.Insert(0, fReplaceWth);
|
fReplaceMru.Insert(0, fReplaceWth);
|
||||||
if chkPrompt.Checked then
|
if chkPrompt.Checked then
|
||||||
fEditor.OnReplaceText := @replaceEvent;
|
fDoc.OnReplaceText := @replaceEvent;
|
||||||
if not chkFromCur.Checked then
|
if not chkFromCur.Checked then
|
||||||
begin
|
begin
|
||||||
if chkBack.Checked then
|
if chkBack.Checked then
|
||||||
fEditor.CaretXY := Point(high(Integer), high(Integer))
|
fDoc.CaretXY := Point(high(Integer), high(Integer))
|
||||||
else
|
else
|
||||||
fEditor.CaretXY := Point(0,0);
|
fDoc.CaretXY := Point(0,0);
|
||||||
end
|
end
|
||||||
else if fHasSearched then
|
else if fHasSearched then
|
||||||
begin
|
begin
|
||||||
if chkBack.Checked then
|
if chkBack.Checked then
|
||||||
fEditor.CaretX := fEditor.CaretX - 1
|
fDoc.CaretX := fDoc.CaretX - 1
|
||||||
else
|
else
|
||||||
fEditor.CaretX := fEditor.CaretX + length(fToFind);
|
fDoc.CaretX := fDoc.CaretX + length(fToFind);
|
||||||
end;
|
end;
|
||||||
if fEditor.SearchReplace(fToFind, fReplaceWth, getOptions + [ssoReplace]) <> 0 then
|
if fDoc.SearchReplace(fToFind, fReplaceWth, getOptions + [ssoReplace]) <> 0 then
|
||||||
fHasSearched := true;
|
fHasSearched := true;
|
||||||
fEditor.OnReplaceText := nil;
|
fDoc.OnReplaceText := nil;
|
||||||
UpdateByEvent;
|
UpdateByEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -251,17 +251,17 @@ procedure TCESearchWidget.actReplaceAllExecute(sender: TObject);
|
||||||
var
|
var
|
||||||
opts: TSynSearchOptions;
|
opts: TSynSearchOptions;
|
||||||
begin
|
begin
|
||||||
if fEditor = nil then exit;
|
if fDoc = nil then exit;
|
||||||
opts := getOptions + [ssoReplace];
|
opts := getOptions + [ssoReplace];
|
||||||
opts -= [ssoBackwards];
|
opts -= [ssoBackwards];
|
||||||
//
|
//
|
||||||
fSearchMru.Insert(0, fToFind);
|
fSearchMru.Insert(0, fToFind);
|
||||||
fReplaceMru.Insert(0, fReplaceWth);
|
fReplaceMru.Insert(0, fReplaceWth);
|
||||||
if chkPrompt.Checked then fEditor.OnReplaceText := @replaceEvent;
|
if chkPrompt.Checked then fDoc.OnReplaceText := @replaceEvent;
|
||||||
fEditor.CaretXY := Point(0,0);
|
fDoc.CaretXY := Point(0,0);
|
||||||
while(true) do
|
while(true) do
|
||||||
begin
|
begin
|
||||||
if fEditor.SearchReplace(fToFind, fReplaceWth, opts) = 0
|
if fDoc.SearchReplace(fToFind, fReplaceWth, opts) = 0
|
||||||
then break;
|
then break;
|
||||||
if fCancelAll then
|
if fCancelAll then
|
||||||
begin
|
begin
|
||||||
|
|
@ -269,7 +269,7 @@ begin
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
fEditor.OnReplaceText := nil;
|
fDoc.OnReplaceText := nil;
|
||||||
UpdateByEvent;
|
UpdateByEvent;
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
@ -277,19 +277,20 @@ end;
|
||||||
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
||||||
procedure TCESearchWidget.docNew(aDoc: TCESynMemo);
|
procedure TCESearchWidget.docNew(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
fEditor := aDoc;
|
fDoc := aDoc;
|
||||||
UpdateByEvent;
|
UpdateByEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESearchWidget.docClosing(aDoc: TCESynMemo);
|
procedure TCESearchWidget.docClosing(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
if fEditor = aDoc then fEditor := nil;
|
if fDoc = aDoc then fDoc := nil;
|
||||||
UpdateByEvent;
|
UpdateByEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESearchWidget.docFocused(aDoc: TCESynMemo);
|
procedure TCESearchWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
fEditor := aDoc;
|
if fDoc = aDoc then exit;
|
||||||
|
fDoc := aDoc;
|
||||||
UpdateByEvent;
|
UpdateByEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -321,11 +322,11 @@ end;
|
||||||
|
|
||||||
procedure TCESearchWidget.UpdateByEvent;
|
procedure TCESearchWidget.UpdateByEvent;
|
||||||
begin
|
begin
|
||||||
fActFindNext.Enabled := fEditor <> nil;
|
fActFindNext.Enabled := fDoc <> nil;
|
||||||
fActReplaceNext.Enabled := (fEditor <> nil) and (chkEnableRep.Checked);
|
fActReplaceNext.Enabled := (fDoc <> nil) and (chkEnableRep.Checked);
|
||||||
fActReplaceAll.Enabled := (fEditor <> nil) and (chkEnableRep.Checked);
|
fActReplaceAll.Enabled := (fDoc <> nil) and (chkEnableRep.Checked);
|
||||||
cbReplaceWth.Enabled := (fEditor <> nil) and (chkEnableRep.Checked);
|
cbReplaceWth.Enabled := (fDoc <> nil) and (chkEnableRep.Checked);
|
||||||
cbToFind.Enabled := fEditor <> nil;
|
cbToFind.Enabled := fDoc <> nil;
|
||||||
//
|
//
|
||||||
cbToFind.Items.Assign(fSearchMru);
|
cbToFind.Items.Assign(fSearchMru);
|
||||||
cbReplaceWth.Items.Assign(fReplaceMru);
|
cbReplaceWth.Items.Assign(fReplaceMru);
|
||||||
|
|
|
||||||
|
|
@ -286,6 +286,7 @@ end;
|
||||||
|
|
||||||
procedure TCEStaticExplorerWidget.docFocused(aDoc: TCESynMemo);
|
procedure TCEStaticExplorerWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if fDoc = aDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
if not Visible then exit;
|
if not Visible then exit;
|
||||||
//
|
//
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ end;
|
||||||
|
|
||||||
procedure TCEStaticEditorMacro.docFocused(aDoc: TCESynMemo);
|
procedure TCEStaticEditorMacro.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if fDoc = aDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
fCompletor.Editor := fDoc;
|
fCompletor.Editor := fDoc;
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,7 @@ end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.docFocused(aDoc: TCESynMemo);
|
procedure TCETodoListWidget.docFocused(aDoc: TCESynMemo);
|
||||||
begin
|
begin
|
||||||
|
if aDoc = fDoc then exit;
|
||||||
fDoc := aDoc;
|
fDoc := aDoc;
|
||||||
if Visible then
|
if Visible then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
|
|
@ -244,6 +245,7 @@ end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.projFocused(aProject: TCEProject);
|
procedure TCETodoListWidget.projFocused(aProject: TCEProject);
|
||||||
begin
|
begin
|
||||||
|
if aProject = fProj then exit;
|
||||||
fProj := aProject;
|
fProj := aProject;
|
||||||
if Visible then
|
if Visible then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue