From c47cb94a5e0f32433723a22beab176f877dddfca Mon Sep 17 00:00:00 2001 From: X512 Date: Wed, 3 Jun 2020 17:52:17 +0900 Subject: [PATCH] BOutlineListView: fix keyboard navigation * On left arrow key select parent item when selected item is collapsed. * Scroll to selected item when expanding/collapsing. Change-Id: Ia404abb970376d4168efd8bba4d8817712a885a6 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2873 Reviewed-by: waddlesplash --- src/kits/interface/OutlineListView.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/kits/interface/OutlineListView.cpp b/src/kits/interface/OutlineListView.cpp index 7cc121c69d..483eac2f87 100644 --- a/src/kits/interface/OutlineListView.cpp +++ b/src/kits/interface/OutlineListView.cpp @@ -199,8 +199,10 @@ BOutlineListView::KeyDown(const char* bytes, int32 numBytes) if (item && item->fHasSubitems) { if (!item->IsExpanded()) Expand(item); - else + else { Select(currentSel + 1); + ScrollToSelection(); + } } return; } @@ -209,12 +211,14 @@ BOutlineListView::KeyDown(const char* bytes, int32 numBytes) { BListItem* item = ItemAt(currentSel); if (item) { - if (item->fHasSubitems) + if (item->fHasSubitems && item->IsExpanded()) Collapse(item); else { item = Superitem(item); - if (item) + if (item) { Select(IndexOf(item)); + ScrollToSelection(); + } } } return;