mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-09 23:38:23 +02:00
LazControls: Prevent a ListBox flashing when ListFilterEdit is updated. Move BeginUpdate up. Issue #40279, patch by n7800.
This commit is contained in:
parent
62acfd9909
commit
d0671c7447
@ -200,21 +200,24 @@ begin
|
||||
clb:=Nil;
|
||||
if fFilteredListbox is TCustomCheckListBox then
|
||||
clb:=TCustomCheckListBox(fFilteredListbox);
|
||||
fFilteredListbox.Clear;
|
||||
fFilteredListbox.Items.BeginUpdate;
|
||||
for i:=0 to fSortedData.Count-1 do begin
|
||||
s:=fSortedData[i];
|
||||
ListInd:=fFilteredListbox.Items.AddObject(s, fSortedData.Objects[i]);
|
||||
if Assigned(fSelectedPart) then
|
||||
fFilteredListbox.Selected[i]:=fSelectedPart=fSortedData.Objects[i];
|
||||
if Assigned(clb) then begin
|
||||
if Assigned(OnCheckItem) then
|
||||
clb.Checked[ListInd]:=OnCheckItem(fSortedData.Objects[i])
|
||||
else
|
||||
clb.Checked[ListInd]:=fCheckedItems.Contains(s);
|
||||
try
|
||||
fFilteredListbox.Clear;
|
||||
for i:=0 to fSortedData.Count-1 do begin
|
||||
s:=fSortedData[i];
|
||||
ListInd:=fFilteredListbox.Items.AddObject(s, fSortedData.Objects[i]);
|
||||
if Assigned(fSelectedPart) then
|
||||
fFilteredListbox.Selected[i]:=fSelectedPart=fSortedData.Objects[i];
|
||||
if Assigned(clb) then begin
|
||||
if Assigned(OnCheckItem) then
|
||||
clb.Checked[ListInd]:=OnCheckItem(fSortedData.Objects[i])
|
||||
else
|
||||
clb.Checked[ListInd]:=fCheckedItems.Contains(s);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
fFilteredListbox.Items.EndUpdate;
|
||||
end;
|
||||
fFilteredListbox.Items.EndUpdate;
|
||||
if FSimpleSelection and (fSortedData.Count > 0) then begin
|
||||
if (Text<>'') then begin
|
||||
MoveTo(0, true);
|
||||
|
Loading…
Reference in New Issue
Block a user