diff --git a/addons/mail/static/src/emoji_picker/emoji_picker.js b/addons/mail/static/src/emoji_picker/emoji_picker.js
index c9137ea10af..10ffd4dd36a 100644
--- a/addons/mail/static/src/emoji_picker/emoji_picker.js
+++ b/addons/mail/static/src/emoji_picker/emoji_picker.js
@@ -295,8 +295,10 @@ export class EmojiPicker extends Component {
this.recent[codepoints]++;
browser.localStorage.setItem("mail.emoji.frequent", JSON.stringify(this.recent));
this.gridRef.el.scrollTop = 0;
- this.props.close();
- this.props.onClose();
+ if (!ev.shiftKey) {
+ this.props.close();
+ this.props.onClose();
+ }
}
highlightActiveCategory() {
diff --git a/addons/mail/static/src/emoji_picker/emoji_picker.xml b/addons/mail/static/src/emoji_picker/emoji_picker.xml
index 6d7a2be13f3..d8053859097 100644
--- a/addons/mail/static/src/emoji_picker/emoji_picker.xml
+++ b/addons/mail/static/src/emoji_picker/emoji_picker.xml
@@ -26,7 +26,7 @@
+
😢
No emoji match your search
diff --git a/addons/mail/static/tests/emoji/emoji_tests.js b/addons/mail/static/tests/emoji/emoji_tests.js
index bd5eb35b70c..fa68557a25b 100644
--- a/addons/mail/static/tests/emoji/emoji_tests.js
+++ b/addons/mail/static/tests/emoji/emoji_tests.js
@@ -150,3 +150,21 @@ QUnit.test("first category should be highlight by default", async (assert) => {
await click("button[aria-label='Emojis']");
assert.containsOnce($, ".o-mail-EmojiPicker-header .o-mail-Emoji:eq(0).bg-300");
});
+
+QUnit.test(
+ "selecting an emoji while holding down the Shift key prevents the emoji picker from closing",
+ async (assert) => {
+ const pyEnv = await startServer();
+ const channelId = pyEnv["discuss.channel"].create({ name: "" });
+ const { openDiscuss } = await start();
+ await openDiscuss(channelId);
+ await click("button[aria-label='Emojis']");
+ await afterNextRender(() =>
+ $(".o-mail-EmojiPicker-content .o-mail-Emoji:contains(👺)")[0].dispatchEvent(
+ new MouseEvent("click", { shiftKey: true })
+ )
+ );
+ assert.containsOnce($, ".o-mail-EmojiPicker");
+ assert.strictEqual($(".o-mail-Composer-input").val(), "👺");
+ }
+);