diff --git a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 index 3274b9bfa58..01bd8356be2 100644 --- a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 +++ b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 @@ -89,6 +89,8 @@ export default { this._bindToClick(binding.click, key); } }); + + this._bindFocus(); }, toggleBookmark() { @@ -308,6 +310,19 @@ export default { } }, + _bindFocus() { + const addSelected = function(e, addOrRemove) { + const row = '.topic-post, .topic-list-item, .topic-list tbody tr'; + const $wrapper = $(e.target).closest(row); + const $srcWrapper = $(e.relatedTarget).closest(row); + if (!$wrapper.is($srcWrapper)) $wrapper.toggleClass('selected', addOrRemove); + }; + + const $document = $(document); + $document.on('focusin.topic-post', e => addSelected(e, true)); + $document.on('focusout.topic-post', e => addSelected(e, false)); + }, + _moveSelection(direction) { const $articles = this._findArticles();