From 7ad8bb2c0950db01846a9c75ad1b76dd4c967aa4 Mon Sep 17 00:00:00 2001 From: "Michael Mattiello (mcm)" Date: Tue, 30 Mar 2021 10:17:36 +0000 Subject: [PATCH] [FIX] web: fix quick edit tests Before this commit, quick edit tests could crash in an undetermined way. It was due to the setTimeout for the quick edit event in FormController which waits at least 1 tick even if timeout = 0 like in those tests. Now, if this timeout is 0 then we bypass the setTimeout. --- .../web/static/src/js/views/form/form_controller.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/views/form/form_controller.js b/addons/web/static/src/js/views/form/form_controller.js index 1e7aa1e0639..921c6227c93 100644 --- a/addons/web/static/src/js/views/form/form_controller.js +++ b/addons/web/static/src/js/views/form/form_controller.js @@ -696,16 +696,21 @@ var FormController = BasicController.extend({ * @private * @param {OdooEvent} ev */ - _onQuickEdit: async function (ev) { + _onQuickEdit: function (ev) { ev.stopPropagation(); clearTimeout(this.quickEditTimeout); if (this.activeActions.edit && !window.getSelection().toString()) { - this.quickEditTimeout = setTimeout(async () => { + const quickEdit = async () => { if (!this.isDestroyed()) { await this._setEditMode(); this.renderer.quickEdit(ev.data); } - }, this.multiClickTime); + }; + if (this.multiClickTime > 0) { + this.quickEditTimeout = setTimeout(quickEdit, this.multiClickTime); + } else { + quickEdit(); + } } }, /**