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);