From bf7dfa45c8d5420267403c765974075c38f8a073 Mon Sep 17 00:00:00 2001 From: Vincent Schippefilt Date: Wed, 11 Apr 2018 10:16:02 +0200 Subject: [PATCH] [FIX] web: fix scroll on list and kanban when using keyboard navigation Before this fix, list view and kanban views are scrolling every time the user uses the up and down keys. After this fix the list and kanban views will only scroll when the user arrives at the boder of the window --- addons/web/static/src/js/views/kanban/kanban_renderer.js | 8 ++++++++ addons/web/static/src/js/views/list/list_renderer.js | 2 ++ 2 files changed, 10 insertions(+) diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 953ffcf7dd7..2d18c879ee3 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -103,15 +103,21 @@ var KanbanRenderer = BasicRenderer.extend({ previousCard.focus(); } }, + /** + * @private + * @param {KeyboardEvent} e + */ _onRecordKeyDown: function(e) { switch(e.which) { case $.ui.keyCode.DOWN: this._focusOnNextCard(e.currentTarget); e.stopPropagation(); + e.preventDefault(); break; case $.ui.keyCode.UP: this._focusOnPrevousCard(e.currentTarget); e.stopPropagation(); + e.preventDefault(); break; case $.ui.keyCode.RIGHT: var currentColumn = e.currentTarget.parentElement; @@ -126,6 +132,7 @@ var KanbanRenderer = BasicRenderer.extend({ this._focusOnNextCard(e.currentTarget); } e.stopPropagation(); + e.preventDefault(); break; case $.ui.keyCode.LEFT: var currentColumn = e.currentTarget.parentElement; @@ -140,6 +147,7 @@ var KanbanRenderer = BasicRenderer.extend({ this._focusOnPrevousCard(e.currentTarget); } e.stopPropagation(); + e.preventDefault(); break; } }, diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js index 354e7c8a90b..31919962d56 100644 --- a/addons/web/static/src/js/views/list/list_renderer.js +++ b/addons/web/static/src/js/views/list/list_renderer.js @@ -738,9 +738,11 @@ var ListRenderer = BasicRenderer.extend({ switch(e.which) { case $.ui.keyCode.DOWN: $(e.currentTarget).next().find('input').focus(); + e.preventDefault(); break; case $.ui.keyCode.UP: $(e.currentTarget).prev().find('input').focus(); + e.preventDefault(); break; case $.ui.keyCode.ENTER: e.preventDefault();