From c899cf26d278d8512f521ba37522f7472805c9ed Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Fri, 29 Nov 2019 18:24:22 +0100 Subject: [PATCH] fix(overlays): hideOnEsc should also work while being on the invoker --- packages/input-datepicker/src/LionInputDatepicker.js | 1 + packages/overlays/src/OverlayController.js | 2 ++ packages/tooltip/src/LionTooltip.js | 1 + 3 files changed, 4 insertions(+) diff --git a/packages/input-datepicker/src/LionInputDatepicker.js b/packages/input-datepicker/src/LionInputDatepicker.js index 2d34c8475..636ce1275 100644 --- a/packages/input-datepicker/src/LionInputDatepicker.js +++ b/packages/input-datepicker/src/LionInputDatepicker.js @@ -262,6 +262,7 @@ export class LionInputDatepicker extends OverlayMixin(LionInputDate) { _defineOverlayConfig() { return { ...withModalDialogConfig(), + hidesOnOutsideClick: true, }; } diff --git a/packages/overlays/src/OverlayController.js b/packages/overlays/src/OverlayController.js index f9e8d60b4..552b5ee21 100644 --- a/packages/overlays/src/OverlayController.js +++ b/packages/overlays/src/OverlayController.js @@ -483,8 +483,10 @@ export class OverlayController { if (phase === 'show') { this.__escKeyHandler = ev => ev.key === 'Escape' && this.hide(); this.contentNode.addEventListener('keyup', this.__escKeyHandler); + this.invokerNode.addEventListener('keyup', this.__escKeyHandler); } else if (phase === 'hide') { this.contentNode.removeEventListener('keyup', this.__escKeyHandler); + this.invokerNode.removeEventListener('keyup', this.__escKeyHandler); } } diff --git a/packages/tooltip/src/LionTooltip.js b/packages/tooltip/src/LionTooltip.js index 1976ea6be..3bbb4e030 100644 --- a/packages/tooltip/src/LionTooltip.js +++ b/packages/tooltip/src/LionTooltip.js @@ -14,6 +14,7 @@ export class LionTooltip extends OverlayMixin(LitElement) { return { placementMode: 'local', // have to set a default elementToFocusAfterHide: null, + hidesOnEsc: true, }; }