diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index 905a0723d8..2267283fb8 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -42,23 +42,24 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
$scope.imageURLToSend = "";
$scope.userIDToInvite = "";
- var scrollToBottom = function() {
+ var scrollToBottom = function(force) {
console.log("Scrolling to bottom");
- $timeout(function() {
- var objDiv = document.getElementById("messageTableWrapper");
- objDiv.scrollTop = objDiv.scrollHeight;
- }, 0);
+
+ // Do not autoscroll to the bottom to display the new event if the user is not at the bottom.
+ // Exception: in case where the event is from the user, we want to force scroll to the bottom
+ var objDiv = document.getElementById("messageTableWrapper");
+ if ((objDiv.offsetHeight + objDiv.scrollTop >= objDiv.scrollHeight) || force) {
+
+ $timeout(function() {
+ objDiv.scrollTop = objDiv.scrollHeight;
+ }, 0);
+ }
};
$scope.$on(eventHandlerService.MSG_EVENT, function(ngEvent, event, isLive) {
if (isLive && event.room_id === $scope.room_id) {
-
- // Do not autoscroll to the bottom to display this new event if the user is not at the bottom.
- // Exception: if the event is from the user, scroll to the bottom
- var objDiv = document.getElementById("messageTableWrapper");
- if ( (objDiv.offsetHeight + objDiv.scrollTop >= objDiv.scrollHeight) || event.user_id === $scope.state.user_id) {
- scrollToBottom();
- }
+
+ scrollToBottom();
if (window.Notification) {
// Show notification when the user is idle
@@ -80,6 +81,7 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
$scope.$on(eventHandlerService.MEMBER_EVENT, function(ngEvent, event, isLive) {
if (isLive) {
+ scrollToBottom();
updateMemberList(event);
}
});
@@ -288,6 +290,8 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
return;
}
+ scrollToBottom(true);
+
var promise;
var isCmd = false;
@@ -614,7 +618,8 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
};
$scope.sendImage = function(url, body) {
-
+ scrollToBottom(true);
+
matrixService.sendImageMessage($scope.room_id, url, body).then(
function() {
console.log("Image sent");
|