From 0ce7e436005ea7cd0cd126ba235956a957ec9a7b Mon Sep 17 00:00:00 2001 From: Alexander Ebert Date: Sun, 19 Jun 2016 16:18:29 +0200 Subject: [PATCH] Fix for mentions inside list items in Firefox --- wcfsetup/install/files/js/WCF.Message.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/wcfsetup/install/files/js/WCF.Message.js b/wcfsetup/install/files/js/WCF.Message.js index 0e0a0ed1b2..2eda272ae9 100644 --- a/wcfsetup/install/files/js/WCF.Message.js +++ b/wcfsetup/install/files/js/WCF.Message.js @@ -3637,7 +3637,15 @@ WCF.Message.UserMention = Class.extend({ this._redactor.buffer.set(); var $startContainer = $orgRange.startContainer; - var $startOffset = $orgRange.startOffset - (this._mentionStart.length + 1); + var $startOffset = $orgRange.startOffset; + + // start container might be the parent when inside a list item + if ($startContainer.nodeName === 'LI' && $startOffset === 1) { + $startContainer = $startContainer.lastChild; + $startOffset = $startContainer.textContent.length - 1; + } + + $startOffset -= (this._mentionStart.length + 1); // navigating with the keyboard before hitting enter will cause the text node to be split if ($startOffset < 0) { @@ -3665,7 +3673,7 @@ WCF.Message.UserMention = Class.extend({ var $text = document.createTextNode('@' + username); $range.insertNode($text); - var $newRange = document.createRange(); + $newRange = document.createRange(); $newRange.setStart($text, username.length + 1); $newRange.setEnd($text, username.length + 1); -- 2.20.1