From c569cde8cfac21cbf505c879beb1bf655c770d71 Mon Sep 17 00:00:00 2001 From: Kibi Kelburton Date: Fri, 22 May 2026 15:37:29 +0200 Subject: [PATCH] keep keyboard open when opening emoji selector --- public/s/js/comments.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/public/s/js/comments.js b/public/s/js/comments.js index 66c3c44..9a40a77 100644 --- a/public/s/js/comments.js +++ b/public/s/js/comments.js @@ -3389,6 +3389,15 @@ class CommentSystem { actions.querySelector('.save-edit-btn'); actions.insertBefore(trigger, referenceNode); actions.insertBefore(spoilerBtn, trigger); + + // Prevent trigger from blurring the textarea, keeping the keyboard open + trigger.addEventListener('mousedown', (e) => { + e.preventDefault(); + }); + trigger.addEventListener('touchstart', (e) => { + e.preventDefault(); + trigger.click(); + }, { passive: false }); if (this.isAdmin) { const lockBtn = document.createElement('button'); lockBtn.id = 'lock-thread-btn'; @@ -3433,6 +3442,16 @@ class CommentSystem { picker = document.createElement('div'); picker.className = 'emoji-picker'; + // Prevent picker interactions from blurring the textarea, keeping the keyboard open + picker.addEventListener('mousedown', (e) => { + e.preventDefault(); + }); + picker.addEventListener('touchstart', (e) => { + e.preventDefault(); + const img = e.target.closest('img'); + if (img) img.click(); + }, { passive: false }); + if (this.customEmojis && Object.keys(this.customEmojis).length > 0) { Object.keys(this.customEmojis).forEach(name => { const url = this.customEmojis[name];