diff --git a/addons/web/static/src/views/list/list_renderer.js b/addons/web/static/src/views/list/list_renderer.js index f746df6f32b..d8428a38888 100644 --- a/addons/web/static/src/views/list/list_renderer.js +++ b/addons/web/static/src/views/list/list_renderer.js @@ -1040,7 +1040,7 @@ export class ListRenderer extends Component { const cell = this.tableRef.el.querySelector( `.o_selected_row td[name='${column.name}']` ); - if (containsActiveElement(cell)) { + if (cell && containsActiveElement(cell)) { this.lastEditedCell = { column, record }; // Cell is already focused. return; diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index 48c98d80d71..7a1c0b22099 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -8239,6 +8239,31 @@ QUnit.module("Views", (hooks) => { ); }); + QUnit.test("click on a button cell in a list view", async (assert) => { + serverData.models.foo.records[0].foo = "bar"; + await makeView({ + type: "list", + resModel: "foo", + serverData, + arch: ` + + +