From fa2e718edfbe8450b0f0648b6c6efe614ee8c285 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 4 Mar 2019 10:51:23 -0500 Subject: [PATCH] Keep the focused item visible when navigating the search-to-add results with the arrow keys --- modules/ui/search_add.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/ui/search_add.js b/modules/ui/search_add.js index bf50cfbd1..708df885f 100644 --- a/modules/ui/search_add.js +++ b/modules/ui/search_add.js @@ -159,7 +159,17 @@ export function uiSearchAdd(context) { function focusListItem(selection) { if (!selection.empty()) { selection.classed('focused', true); - //selection.nodes()[0].scrollIntoView(); + var node = selection.nodes()[0]; + var popoverNode = popover.node(); + var nodeRect = node.getBoundingClientRect(); + + // scroll to keep the focused item visible + if (node.offsetTop < popoverNode.scrollTop) { + popoverNode.scrollTop = node.offsetTop; + + } else if (node.offsetTop + node.offsetHeight > popoverNode.scrollTop + popoverNode.offsetHeight) { + popoverNode.scrollTop = node.offsetTop + node.offsetHeight - popoverNode.offsetHeight; + } } }