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

9
app/js/directives.js

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

Loading…
Cancel
Save