mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-04-01 14:50:24 +00:00
fixed dialogs preloading on scroll
This commit is contained in:
parent
d874609816
commit
e0910bfb3e
@ -82,6 +82,8 @@ enum {
|
||||
|
||||
MediaViewImageSizeLimit = 10 * 1024 * 1024, // show up to 10mb jpg/png docs in mediaview
|
||||
MaxZoomLevel = 7, // x8
|
||||
|
||||
PreloadHeightsCount = 3, // when 3 screens to scroll left make a preload request
|
||||
};
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
|
@ -1283,10 +1283,10 @@ void DialogsWidget::onListScroll() {
|
||||
list.loadPeerPhotos(scroll.scrollTop());
|
||||
if (list.state() == DialogsListWidget::SearchedState) {
|
||||
DialogsListWidget::SearchResults &res(list.searchList());
|
||||
if (scroll.scrollTop() > res.size() * st::dlgHeight - 2 * scroll.height()) {
|
||||
if (scroll.scrollTop() > res.size() * st::dlgHeight - PreloadHeightsCount * scroll.height()) {
|
||||
onSearchMore(list.lastSearchId());
|
||||
}
|
||||
} else if (scroll.scrollTop() > list.dialogsList().list.count * st::dlgHeight - scroll.height()) {
|
||||
} else if (scroll.scrollTop() > list.dialogsList().list.count * st::dlgHeight - PreloadHeightsCount * scroll.height()) {
|
||||
loadDialogs();
|
||||
}
|
||||
}
|
||||
|
@ -2094,7 +2094,7 @@ void HistoryWidget::loadMessages() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!histPreloading && (!hist->readyForWork() || _scroll.scrollTop() < 3 * _scroll.height())) {
|
||||
if (!histPreloading && (!hist->readyForWork() || _scroll.scrollTop() < PreloadHeightsCount * _scroll.height())) {
|
||||
MsgId min = hist->minMsgId();
|
||||
int32 offset = 0, loadCount = min ? MessagesPerPage : MessagesFirstLoad;
|
||||
if (!min && hist->activeMsgId) {
|
||||
@ -2125,7 +2125,7 @@ void HistoryWidget::loadMessagesDown() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!histPreloadingDown && hist->readyForWork() && (_scroll.scrollTop() + 3 * _scroll.height() > _scroll.scrollTopMax())) {
|
||||
if (!histPreloadingDown && hist->readyForWork() && (_scroll.scrollTop() + PreloadHeightsCount * _scroll.height() > _scroll.scrollTopMax())) {
|
||||
MsgId max = hist->maxMsgId();
|
||||
if (max) {
|
||||
int32 loadCount = MessagesPerPage, offset = -loadCount;
|
||||
@ -2156,11 +2156,11 @@ void HistoryWidget::onListScroll() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (hist->readyForWork() && (_scroll.scrollTop() + 3 * _scroll.height() > _scroll.scrollTopMax())) {
|
||||
if (hist->readyForWork() && (_scroll.scrollTop() + PreloadHeightsCount * _scroll.height() > _scroll.scrollTopMax())) {
|
||||
loadMessagesDown();
|
||||
}
|
||||
|
||||
if (!hist->readyForWork() || _scroll.scrollTop() < 3 * _scroll.height()) {
|
||||
if (!hist->readyForWork() || _scroll.scrollTop() < PreloadHeightsCount * _scroll.height()) {
|
||||
loadMessages();
|
||||
} else {
|
||||
checkUnreadLoaded(true);
|
||||
|
Loading…
Reference in New Issue
Block a user