From c902437247d36ca7945d30b8d75b55f4f7c4855e Mon Sep 17 00:00:00 2001 From: Joren Van Onder Date: Mon, 11 Jul 2016 11:27:58 +0200 Subject: [PATCH] [FIX] barcodes: allow users to 'click' focused buttons with Return Return key events don't get redispatched and even if they did, it wouldn't work because 'fake' keypress events don't trigger native HTML event handlers. This should be safe because Return cannot start a valid barcode. --- addons/barcodes/static/src/js/barcode_events.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/barcodes/static/src/js/barcode_events.js b/addons/barcodes/static/src/js/barcode_events.js index 546faee3655..fca30916106 100644 --- a/addons/barcodes/static/src/js/barcode_events.js +++ b/addons/barcodes/static/src/js/barcode_events.js @@ -129,6 +129,10 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, { // Don't catch keypresses which could have a UX purpose (like shortcuts) if (e.ctrlKey || e.metaKey || e.altKey) return; + // Don't catch Return when nothing is buffered. This way users + // can still use Return to 'click' on focused buttons or links. + if (e.which === 13 && this.buffered_key_events.length === 0) + return; // Don't catch events targeting elements that are editable because we // have no way of redispatching 'genuine' key events. Resent events // don't trigger native event handlers of elements. So this means that