LCL: TTreeView: tvoShowRoot: showing first node, bug #12866

git-svn-id: trunk@17968 -
This commit is contained in:
mattias 2008-12-28 09:06:40 +00:00
parent 09753e55c4
commit a189d6f6b4

View File

@ -842,9 +842,6 @@ begin
end; end;
end else end else
Result := Parent; Result := Parent;
if (Result.Parent=nil) and (Result.GetPrevSibling=nil)
and (not (tvoShowRoot in TreeView.Options)) then
Result:=nil;
end; end;
function TTreeNode.GetNextChild(AValue: TTreeNode): TTreeNode; function TTreeNode.GetNextChild(AValue: TTreeNode): TTreeNode;
@ -3074,16 +3071,10 @@ procedure TCustomTreeView.UpdateAllTops;
end; end;
var i: integer; var i: integer;
StartNode: TTreeNode;
begin begin
if not (tvsTopsNeedsUpdate in FStates) then exit; if not (tvsTopsNeedsUpdate in FStates) then exit;
i:=0; i:=0;
StartNode:=Items.GetFirstNode; CalculateTops(Items.GetFirstNode,i);
if (not (tvoShowRoot in Options)) and (StartNode<>nil) then begin
StartNode.FTop:=0;
StartNode:=StartNode.GetNextExpanded;
end;
CalculateTops(StartNode,i);
Exclude(FStates,tvsTopsNeedsUpdate); Exclude(FStates,tvsTopsNeedsUpdate);
Include(FStates,tvsScrollbarChanged); Include(FStates,tvsScrollbarChanged);
end; end;
@ -3294,9 +3285,6 @@ begin
else else
break; break;
end; end;
if (not (tvoShowRoot in Options))
and (Result=Items.FTopLvlItems[0]) then
Result:=nil;
end else end else
Result:=nil; Result:=nil;
end; end;
@ -3492,7 +3480,6 @@ begin
// ' ',dbgs(FScrolledTop)+'>=',dbgs(ANode.Top+ANode.Height)+' or =',dbgs(FScrolledTop),'+'+dbgs(ClientHeight)+'<',dbgs(ANode.Top)); // ' ',dbgs(FScrolledTop)+'>=',dbgs(ANode.Top+ANode.Height)+' or =',dbgs(FScrolledTop),'+'+dbgs(ClientHeight)+'<',dbgs(ANode.Top));
if (FScrolledTop>=ANode.Top+ANode.Height) if (FScrolledTop>=ANode.Top+ANode.Height)
or (FScrolledTop+(ClientHeight-ScrollBarWidth)-2*BorderWidth<ANode.Top) or (FScrolledTop+(ClientHeight-ScrollBarWidth)-2*BorderWidth<ANode.Top)
or ((not (tvoShowRoot in Options)) and (ANode.fParent=nil) and (ANode.FPrevBrother=nil))
then then
Result:=false; Result:=false;
end; end;
@ -3511,7 +3498,6 @@ begin
if (FScrolledTop>ANode.Top) if (FScrolledTop>ANode.Top)
or (FScrolledTop+(ClientHeight-ScrollBarWidth)-2*BorderWidth or (FScrolledTop+(ClientHeight-ScrollBarWidth)-2*BorderWidth
<ANode.Top+ANode.Height) <ANode.Top+ANode.Height)
or ((not (tvoShowRoot in Options)) and (ANode.fParent=nil) and (ANode.FPrevBrother=nil))
then then
Result:=false; Result:=false;
end; end;
@ -3559,12 +3545,8 @@ begin
if lNode.Expanded then if lNode.Expanded then
lNode.Expanded := False lNode.Expanded := False
else else
if lNode.Parent <> nil then begin if lNode.Parent <> nil then
lNode := lNode.Parent; lNode := lNode.Parent;
if (not (tvoShowRoot in Options)) and (lNode.Parent=nil)
and (lNode.GetPrevSibling=nil) then
lNode:=lNode.GetNextSibling;
end;
end; end;
VK_RIGHT: VK_RIGHT:
@ -3585,11 +3567,8 @@ begin
lNode.Expanded := False; lNode.Expanded := False;
VK_HOME: VK_HOME:
if Items.GetFirstNode<>nil then begin if Items.GetFirstNode<>nil then
lNode := Items.GetFirstNode; lNode := Items.GetFirstNode;
if (not (tvoShowRoot in Options)) then
lNode:=lNode.GetNextExpanded;
end;
VK_END: VK_END:
if Items.GetFirstNode<>nil then if Items.GetFirstNode<>nil then