diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index cded5d729..003013bd9 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -6078,7 +6078,8 @@ void HistoryWidget::updatePinnedViewer() { || _delayedShowAtRequest || _scroll->isHidden() || !_history - || !_historyInited) { + || !_historyInited + || !_pinnedTracker) { return; } const auto visibleBottom = _scroll->scrollTop() + _scroll->height(); @@ -6217,8 +6218,8 @@ void HistoryWidget::checkPinnedBarState() { })); controller()->adaptive().oneColumnValue( - ) | rpl::start_with_next([=](bool one) { - _pinnedBar->setShadowGeometryPostprocess([=](QRect geometry) { + ) | rpl::start_with_next([=, raw = _pinnedBar.get()](bool one) { + raw->setShadowGeometryPostprocess([=](QRect geometry) { if (!one) { geometry.setLeft(geometry.left() + st::lineWidth); } @@ -6305,6 +6306,9 @@ void HistoryWidget::setChooseReportMessagesDetails( } void HistoryWidget::refreshPinnedBarButton(bool many, HistoryItem *item) { + if (!_pinnedBar) { + return; // It can be in process of hiding. + } const auto openSection = [=] { const auto id = _pinnedTracker ? _pinnedTracker->currentMessageId() diff --git a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp index 1d20b43eb..91cfe522f 100644 --- a/Telegram/SourceFiles/history/view/history_view_replies_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_replies_section.cpp @@ -1614,8 +1614,8 @@ void RepliesWidget::checkPinnedBarState() { })); controller()->adaptive().oneColumnValue( - ) | rpl::start_with_next([=](bool one) { - _pinnedBar->setShadowGeometryPostprocess([=](QRect geometry) { + ) | rpl::start_with_next([=, raw = _pinnedBar.get()](bool one) { + raw->setShadowGeometryPostprocess([=](QRect geometry) { if (!one) { geometry.setLeft(geometry.left() + st::lineWidth); } @@ -1657,6 +1657,9 @@ void RepliesWidget::checkPinnedBarState() { } void RepliesWidget::refreshPinnedBarButton(bool many, HistoryItem *item) { + if (!_pinnedBar) { + return; // It can be in process of hiding. + } const auto openSection = [=] { const auto id = _pinnedTracker ? _pinnedTracker->currentMessageId()