From 3e8541362aabe8c61097f2b885dcefd991a3a502 Mon Sep 17 00:00:00 2001 From: ed Date: Sun, 18 Jul 2021 22:32:34 +0200 Subject: [PATCH] keep active dir scrolled into view on keybd nav --- copyparty/web/browser.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 29504e13..8952afa0 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -1711,6 +1711,25 @@ var thegrid = (function () { })(); +function tree_scrollto() { + var act = QS('#treeul a.hl'); + if (!act) + return; + + var ctr = ebi('tree'), + ul = act.offsetParent, + em = parseFloat(getComputedStyle(act).fontSize), + top = act.offsetTop + ul.offsetTop, + min = top - 11 * em, + max = top - (ctr.offsetHeight - 10 * em); + + if (ctr.scrollTop > min) + ctr.scrollTop = Math.floor(min); + else if (ctr.scrollTop < max) + ctr.scrollTop = Math.floor(max); +} + + function tree_neigh(n) { var links = QSA('#treeul li>a+a'); if (!links.length) { @@ -1736,6 +1755,7 @@ function tree_neigh(n) { if (act >= links.length) act = 0; + treectl.dir_cb = tree_scrollto; links[act].click(); }