diff --git a/src/GleapFeedbackButtonManager.js b/src/GleapFeedbackButtonManager.js index 9cac4e51..f7694192 100644 --- a/src/GleapFeedbackButtonManager.js +++ b/src/GleapFeedbackButtonManager.js @@ -84,7 +84,7 @@ export default class GleapFeedbackButtonManager { } } - feedbackButtonPressed() { + feedbackButtonPressed(fromKeyboard = false) { var frameManager = GleapFrameManager.getInstance(); if (frameManager.isOpened()) { frameManager.hideWidget(); @@ -93,7 +93,24 @@ export default class GleapFeedbackButtonManager { frameManager.setAppMode('widget'); frameManager.showWidget(); this.updateRedDot(false); + // Opened from the keyboard: the keyboard moves into the messenger with it. + if (fromKeyboard) { + frameManager.focusFrame(); + } + } + } + + /** + * The messenger closed while the keyboard was in it (Escape, its close button): the keyboard + * comes back to the launcher instead of the top of the page. + */ + restoreFocus() { + if (!this.feedbackButton || !this.feedbackButton.isConnected) { + return; } + try { + this.feedbackButton.focus({ preventScroll: true }); + } catch (e) {} } /** @@ -105,10 +122,20 @@ export default class GleapFeedbackButtonManager { } this.injectedFeedbackButton = true; + // A div (a