diff --git a/ui (gen4)/lib/widget/browse.html b/ui (gen4)/lib/widget/browse.html index 5891d0f3..5ffd6f49 100755 --- a/ui (gen4)/lib/widget/browse.html +++ b/ui (gen4)/lib/widget/browse.html @@ -160,9 +160,24 @@ TREE.dir_c.dir_b.tree = TREE var use_disabled = true var show_files = false +requirejs.config({ + paths: { + 'lib/object': '../../node_modules/ig-object/object', + 'lib/actions': '../../node_modules/ig-actions/actions', + 'lib/features': '../../node_modules/ig-features/features', + //'lib/keyboard': '../../node_modules/ig-keyboard/keyboard', + }, + map: { + '*': { + '../object': 'lib/object', + }, + }, +}) + + requirejs([ '../keyboard', - '../object', + 'lib/object', '../toggler', './browse' ], function(k, o, t, br){ diff --git a/ui (gen4)/lib/widget/browse2.html b/ui (gen4)/lib/widget/browse2.html index 45313404..cfef22f3 100755 --- a/ui (gen4)/lib/widget/browse2.html +++ b/ui (gen4)/lib/widget/browse2.html @@ -158,6 +158,7 @@ requirejs.config({ 'lib/object': '../../node_modules/ig-object/object', 'lib/actions': '../../node_modules/ig-actions/actions', 'lib/features': '../../node_modules/ig-features/features', + 'lib/walk': '../../node_modules/generic-walk/walk', //'lib/keyboard': '../../node_modules/ig-keyboard/keyboard', }, map: { diff --git a/ui (gen4)/lib/widget/browse2.js b/ui (gen4)/lib/widget/browse2.js index bd59c9e4..86815fa8 100755 --- a/ui (gen4)/lib/widget/browse2.js +++ b/ui (gen4)/lib/widget/browse2.js @@ -11,10 +11,7 @@ var toggler = require('../toggler') var keyboard = require('../keyboard') var object = require('../object') var widget = require('./widget') - -// XXX -//var walk = require('lib/walk') -var walk = require('../../node_modules/generic-walk/walk').walk +var walk = require('lib/walk').walk @@ -2984,9 +2981,10 @@ var BrowserPrototype = { // Setup basic event handlers... // keyboard... d.addEventListener('keydown', - keyboard.makePausableKeyboardHandler(this.keyboard, - function(){ console.log('KEY:', ...arguments) },//null, - this)) + this.__keyboard_handler = this.__keyboard_handler + || keyboard.makePausableKeyboardHandler(this.keyboard, + function(){ console.log('KEY:', ...arguments) },//null, + this)) // focus... d.addEventListener('click', function(e){ @@ -3025,14 +3023,9 @@ 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 + // XXX HANCK: preventing scrollbar from grabbing focus -- there is + // definitely a better solution implemented in browse.js + ImageGrid + // (the effect seems to be originating out of ImageGrid...) renderList: function(items, context){ var that = this var options = context.options || this.options @@ -3049,6 +3042,13 @@ var BrowserPrototype = { // list... var list = document.createElement('div') list.classList.add('list', 'v-block') + // XXX HACK: prevent scrollbar from grabbing focus... + list.addEventListener('mousedown', + function(){ + setTimeout(function(){ + that.focused + && !list.querySelector(':focus') + && that.focused.dom.focus() }, 0) }) items .forEach(function(item){ list.appendChild(item instanceof Array ?