Skipping message date height when scrolling to the unread bar.

This commit is contained in:
John Preston 2016-03-29 21:03:53 +03:00
parent 80365c9207
commit cd49565457
2 changed files with 13 additions and 5 deletions

View File

@ -377,11 +377,13 @@ bool History::updateTyping(uint64 ms, bool force) {
return changed;
}
ChannelHistory::ChannelHistory(const PeerId &peer) : History(peer),
unreadCountAll(0),
_onlyImportant(!isMegagroup()),
_otherOldLoaded(false), _otherNewLoaded(true),
_collapseMessage(0), _joinedMessage(0) {
ChannelHistory::ChannelHistory(const PeerId &peer) : History(peer)
, unreadCountAll(0)
, _onlyImportant(!isMegagroup())
, _otherOldLoaded(false)
, _otherNewLoaded(true)
, _collapseMessage(nullptr)
, _joinedMessage(nullptr) {
}
bool ChannelHistory::isSwitchReadyFor(MsgId switchId, MsgId &fixInScrollMsgId, int32 &fixInScrollMsgTop) {

View File

@ -6557,8 +6557,14 @@ void HistoryWidget::updateListSize(bool initial, bool loadedDown, const ScrollCh
}
} else if (initial && _migrated && _migrated->unreadBar) {
toY = _list->itemTop(_migrated->unreadBar);
if (_migrated->unreadBar->Has<HistoryMessageDate>()) {
toY += _migrated->unreadBar->Get<HistoryMessageDate>()->height();
}
} else if (initial && _history->unreadBar) {
toY = _list->itemTop(_history->unreadBar);
if (_history->unreadBar->Has<HistoryMessageDate>()) {
toY += _history->unreadBar->Get<HistoryMessageDate>()->height();
}
} else if (_migrated && _migrated->showFrom) {
toY = _list->itemTop(_migrated->showFrom);
if (toY < _scroll.scrollTopMax() + st::unreadBarHeight) {