diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index e7a9ea371a..508ef42c14 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -88,10 +88,12 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) { socket.on('event:chats.userStartTyping', function(withUid) { var modal = module.getModal(withUid); var chatContent = modal.find('#chat-content'); - modal.find('.user-typing') - .removeClass('hide') - .appendTo(chatContent); - scrollToBottom(chatContent); + var atBottom = chatContent[0].scrollHeight - chatContent.scrollTop() === chatContent.innerHeight(); + + modal.find('.user-typing').removeClass('hide').appendTo(chatContent); + if (atBottom) { + scrollToBottom(chatContent); + } }); socket.on('event:chats.userStopTyping', function(withUid) { @@ -181,7 +183,7 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) { }); translator.translate('[[modules:chat.user_typing, ' + username + ']]', function(translated) { - chatModal.find('.user-typing').text(translated); + chatModal.find('.user-typing .text').text(translated); }); @@ -286,7 +288,7 @@ define(['taskbar', 'string', 'sounds'], function(taskbar, S, sounds) { var time = ' '; - if (data.fromuid !== chatContent.children().last().attr('data-uid')) { + if (data.fromuid !== chatContent.children('.chat-message').last().attr('data-uid')) { var userPicture = $(''); var userName = $(' '+ data.fromUser.username + ''); userName.toggleClass('chat-user-you', isYou);