From dd0e375f416d6848492d1d0dc5d56cf3a6b63997 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Mon, 13 Apr 2009 22:20:49 +0000 Subject: [PATCH] Fix build break I introduced in previous commit. Add some extra behavior for OutlineListView's right arrow: if the item has children and is expanded, right arrow now jumps to the first child. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30150 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/ListView.cpp | 2 +- src/kits/interface/OutlineListView.cpp | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/kits/interface/ListView.cpp b/src/kits/interface/ListView.cpp index fdaf5f580e..13d8f1badb 100644 --- a/src/kits/interface/ListView.cpp +++ b/src/kits/interface/ListView.cpp @@ -327,7 +327,7 @@ BListView::MouseDown(BPoint point) if (timeDelta < doubleClickSpeed && fabs(delta.x) < kDoubleClickTresh && fabs(delta.y) < kDoubleClickTresh - && fTrack->last_index == index) + && fTrack->item_index == index) doubleClick = true; if (doubleClick && index >= fFirstSelected && index <= fLastSelected) { diff --git a/src/kits/interface/OutlineListView.cpp b/src/kits/interface/OutlineListView.cpp index 2a01695027..001c8fe09f 100644 --- a/src/kits/interface/OutlineListView.cpp +++ b/src/kits/interface/OutlineListView.cpp @@ -141,18 +141,23 @@ void BOutlineListView::KeyDown(const char* bytes, int32 numBytes) { if (numBytes == 1) { + int32 currentSel = CurrentSelection(); switch (bytes[0]) { case B_RIGHT_ARROW: { - BListItem *item = ItemAt(CurrentSelection()); - if (item && item->fHasSubitems) - Expand(item); + BListItem *item = ItemAt(currentSel); + if (item && item->fHasSubitems) { + if (!IsExpanded(currentSel)) + Expand(item); + else + Select(currentSel + 1); + } return; } case B_LEFT_ARROW: { - BListItem *item = ItemAt(CurrentSelection()); + BListItem *item = ItemAt(currentSel); if (item) { if (item->fHasSubitems) Collapse(item);