From d4233aaf072c98d7b738295ef2884034bd045faa Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Tue, 11 Jun 2019 17:28:38 +0300 Subject: [PATCH] tweaking scrolbars + found bug... Signed-off-by: Alex A. Naanou --- ui (gen4)/lib/widget/browse2.html | 47 ++++++++++++++++++++++++++++--- ui (gen4)/lib/widget/browse2.js | 16 ++++++++++- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/ui (gen4)/lib/widget/browse2.html b/ui (gen4)/lib/widget/browse2.html index a817bcd7..45313404 100755 --- a/ui (gen4)/lib/widget/browse2.html +++ b/ui (gen4)/lib/widget/browse2.html @@ -13,6 +13,9 @@ body { } +.browse-widget { + user-select: none; +} .browse-widget:not(.flat) .list :focus { outline: none; } @@ -36,6 +39,10 @@ body { background: rgba(0, 0, 0, 0.08); } +/* XXX not sure about this... */ +.browse-widget .list .list { + overflow: visible; +} /* XXX stub... .browse-widget:not(.flat) .list .text:first-child:before { @@ -55,6 +62,36 @@ body { */ +/* scrollbar setup... */ +.browse-widget ::-webkit-scrollbar { + width: 10px; + height: 10px; +} +.browse-widget ::-webkit-scrollbar-button { + display: none; +} +.browse-widget ::-webkit-scrollbar-track { +} +.browse-widget ::-webkit-scrollbar-track-piece { + background: transparent; +} +.browse-widget ::-webkit-scrollbar-track-piece { + background: rgba(0, 0, 0, 0.05); +} +.browse-widget ::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); +} +.browse-widget ::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, 0.3); +} +.browse-widget ::-webkit-scrollbar-corner { +} +.browse-widget ::-webkit-resizer { +} + + + + @@ -195,10 +232,12 @@ requirejs([ make.Separator() - ;(new Array(100)) - .fill(1) - .forEach(function(_, i){ - make(i) }) + make.nest( + 'scroll testing', + (new Array(100)) + .fill(1) + .map(function(_, i){ + return make(i) })) }, { itemButtons: [ diff --git a/ui (gen4)/lib/widget/browse2.js b/ui (gen4)/lib/widget/browse2.js index ebf01add..bd59c9e4 100755 --- a/ui (gen4)/lib/widget/browse2.js +++ b/ui (gen4)/lib/widget/browse2.js @@ -3025,6 +3025,14 @@ var BrowserPrototype = { // // XXX instrument interactions... // XXX register event handlers... + // XXX BUG: scrollbar in list can get focus and intercept key events... + // - document.querySelector(':focus') returns null + // - does not reproduce in the ImageGrid.Viewer + // - scrollbar styling does not seem to affect this... + // to reproduce: + // - load a scrolled dialog... + // - click on the scrollbar + // - now the browser does not get key events renderList: function(items, context){ var that = this var options = context.options || this.options @@ -3335,7 +3343,13 @@ var BrowserPrototype = { && that.dom.querySelectorAll('.focused') .forEach(function(e){ e.classList.remove('focused') }) - this.classList.add('focused') }) + this.classList.add('focused') + + this.scrollIntoView({ + behavior: 'auto', + block: 'nearest', + }) + }) // set focus... .focus() }, __blur__: function(evt, elem){