mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 04:09:20 +02:00
LCL: Make ListView.Selected return the first selected item also when OwnerData=True.
git-svn-id: trunk@65474 -
This commit is contained in:
parent
ada182fd7b
commit
d6c215a491
@ -1429,11 +1429,17 @@ function TCustomListView.GetSelection: TListItem;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
if not OwnerData then
|
||||
if OwnerData and not MultiSelect then
|
||||
begin
|
||||
{according to Delphi docs
|
||||
we always must return first selected item, not the last selected one
|
||||
see issue #16773}
|
||||
if FSelectedIdx>=0 then begin
|
||||
FOwnerDataItem.SetDataIndex(FSelectedIdx);
|
||||
Result:=FOwnerDataItem;
|
||||
end else
|
||||
Result:=nil;
|
||||
end
|
||||
else begin
|
||||
{ according to Delphi docs we always must return first selected item,
|
||||
not the last selected one see issue #16773 }
|
||||
if not (lffSelectedValid in FFlags) or MultiSelect then
|
||||
begin
|
||||
FSelected := nil;
|
||||
@ -1448,12 +1454,6 @@ begin
|
||||
Include(FFlags, lffSelectedValid);
|
||||
end;
|
||||
Result := FSelected;
|
||||
end else begin
|
||||
if FSelectedIdx>=0 then begin
|
||||
FOwnerDataItem.SetDataIndex(FSelectedIdx);
|
||||
Result:=FOwnerDataItem;
|
||||
end else
|
||||
Result:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user