From 8596b0309e1a9a116611aef98caf439a02805d82 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 5 Feb 2025 14:18:05 +0400 Subject: [PATCH] Fix bot chat scroll shift on state restore. Fixes #28085. --- Telegram/SourceFiles/history/history_inner_widget.cpp | 4 ++-- Telegram/SourceFiles/history/history_inner_widget.h | 2 +- Telegram/SourceFiles/history/history_widget.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index d5fbdb6393..c8192f37a9 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -3275,7 +3275,7 @@ void HistoryInner::checkActivation() { session().data().histories().readInboxTill(view->data()); } -void HistoryInner::recountHistoryGeometry() { +void HistoryInner::recountHistoryGeometry(bool initial) { _contentWidth = _scroll->width(); if (_history->hasPendingResizedItems() @@ -3333,7 +3333,7 @@ void HistoryInner::recountHistoryGeometry() { } auto historyPaddingTopDelta = (newHistoryPaddingTop - oldHistoryPaddingTop); - if (historyPaddingTopDelta != 0) { + if (!initial && historyPaddingTopDelta != 0) { if (_history->scrollTopItem) { _history->scrollTopOffset += historyPaddingTopDelta; } else if (_migrated && _migrated->scrollTopItem) { diff --git a/Telegram/SourceFiles/history/history_inner_widget.h b/Telegram/SourceFiles/history/history_inner_widget.h index 4c06a0979d..6b4d350c57 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.h +++ b/Telegram/SourceFiles/history/history_inner_widget.h @@ -121,7 +121,7 @@ public: void setItemsRevealHeight(int revealHeight); void changeItemsRevealHeight(int revealHeight); void checkActivation(); - void recountHistoryGeometry(); + void recountHistoryGeometry(bool initial = false); void updateSize(); void setShownPinned(HistoryItem *item); diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index b13600c9b0..7109b494cd 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -6610,7 +6610,7 @@ void HistoryWidget::startMessageSendingAnimation( void HistoryWidget::updateListSize() { Expects(_list != nullptr); - _list->recountHistoryGeometry(); + _list->recountHistoryGeometry(!_historyInited); auto washidden = _scroll->isHidden(); if (washidden) { _scroll->show();