File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -91,6 +91,7 @@ TSimbaTreeView = class(TCustomControl)
9191 Callback: TKeyEvent;
9292 end ;
9393 FModified: Boolean;
94+ FPendingFilter: Boolean; // filter changed while in beginupdate/endupdate
9495
9596 procedure FontChanged (Sender: TObject); override;
9697
@@ -470,6 +471,13 @@ procedure TSimbaTreeView.UpdateFilter;
470471 Node, NodeParent: TTreeNode;
471472 FilterText: String;
472473begin
474+ // delay the filter until EndUpdate
475+ if Items.IsUpdating then
476+ begin
477+ FPendingFilter := True;
478+ Exit;
479+ end ;
480+
473481 FilterText := LowerCase(FFilterEdit.Text);
474482
475483 Items.BeginUpdate();
@@ -662,6 +670,13 @@ procedure TSimbaTreeView.DoEndUpdate(Sender: TObject);
662670 if FModified and Assigned(FOnModify) then
663671 FOnModify(Self);
664672 FModified := False;
673+
674+ if FPendingFilter then
675+ begin
676+ FPendingFilter := False;
677+
678+ UpdateFilter();
679+ end ;
665680end ;
666681
667682procedure TSimbaTreeView.DoTreeAddOrDelete (Sender: TObject; Node: TTreeNode);
You can’t perform that action at this time.
0 commit comments