Browse Source

Fixed focus scroll problem

master
Igor Zhukov 10 years ago
parent
commit
351875cda4
  1. 7
      app/js/controllers.js
  2. 9
      app/js/directives.js

7
app/js/controllers.js

@ -1165,10 +1165,10 @@ angular.module('myApp.controllers', ['myApp.i18n'])
$scope.state.mayBeHasMore = true; $scope.state.mayBeHasMore = true;
console.log(dT(), 'start load history', $scope.curDialog); // console.log(dT(), 'start load history', $scope.curDialog);
getMessagesPromise.then(function (historyResult) { getMessagesPromise.then(function (historyResult) {
if (curJump != jump) return; if (curJump != jump) return;
console.log(dT(), 'history loaded', historyResult); // console.log(dT(), 'history loaded', historyResult);
var fetchedLength = historyResult.history.length; var fetchedLength = historyResult.history.length;
@ -1401,6 +1401,9 @@ angular.module('myApp.controllers', ['myApp.i18n'])
} }
return; return;
} }
if ($scope.curDialog.messageID && addedMessage.my) {
returnToRecent();
}
delete $scope.state.empty; delete $scope.state.empty;
} }
// console.log('append', addedMessage); // console.log('append', addedMessage);

9
app/js/directives.js

@ -888,7 +888,7 @@ angular.module('myApp.directives', ['myApp.filters'])
if (options.idleScroll) { if (options.idleScroll) {
onContentLoaded(function () { onContentLoaded(function () {
$(historyWrap).nanoScroller(); $(historyWrap).nanoScroller();
changeScroll(); changeScroll(true);
}); });
return; return;
} }
@ -929,11 +929,12 @@ angular.module('myApp.directives', ['myApp.filters'])
}); });
}); });
function changeScroll () { function changeScroll (noFocus) {
var unreadSplit, focusMessage; var unreadSplit, focusMessage;
// console.trace('change scroll'); // console.trace('change scroll');
if (focusMessage = $('.im_message_focus:visible', scrollableWrap)[0]) { if (!noFocus &&
(focusMessage = $('.im_message_focus:visible', scrollableWrap)[0])) {
var ch = scrollableWrap.clientHeight, var ch = scrollableWrap.clientHeight,
st = scrollableWrap.scrollTop, st = scrollableWrap.scrollTop,
ot = focusMessage.offsetTop, ot = focusMessage.offsetTop,
@ -979,6 +980,7 @@ angular.module('myApp.directives', ['myApp.filters'])
$scope.$on('ui_history_focus', function () { $scope.$on('ui_history_focus', function () {
if (!atBottom) { if (!atBottom) {
// console.log(dT(), 'scroll history focus');
scrollableWrap.scrollTop = scrollableWrap.scrollHeight; scrollableWrap.scrollTop = scrollableWrap.scrollHeight;
updateScroller(); updateScroller();
atBottom = true; atBottom = true;
@ -1124,6 +1126,7 @@ angular.module('myApp.directives', ['myApp.filters'])
if (heightOnly === true) return; if (heightOnly === true) return;
if (atBottom) { if (atBottom) {
onContentLoaded(function () { onContentLoaded(function () {
// console.log('change scroll bottom');
scrollableWrap.scrollTop = scrollableWrap.scrollHeight; scrollableWrap.scrollTop = scrollableWrap.scrollHeight;
updateScroller(); updateScroller();
}); });

Loading…
Cancel
Save