diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 3ddf972e42..1696225f43 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -498,6 +498,7 @@ HistoryInner::HistoryInner( controller->adaptive().chatWideValue( ) | rpl::on_next([=](bool wide) { _isChatWide = wide; + _overlayHost->hide(); }, lifetime()); _selectScroll.scrolls( @@ -698,6 +699,7 @@ void HistoryInner::setupSwipeReplyAndBack() { if (!canReply) { return true; } + _overlayHost->hide(); result.msgBareId = item->fullId().msg.bare; result.callback = [=, itemId = item->fullId()] { const auto still = show->session().data().message(itemId); @@ -3665,6 +3667,9 @@ void HistoryInner::copyContextText(FullMsgId itemId) { } void HistoryInner::resizeEvent(QResizeEvent *e) { + if (e->oldSize().width() != e->size().width()) { + _overlayHost->hide(); + } mouseActionUpdate(); } @@ -4260,6 +4265,9 @@ HistoryView::SelectionModeResult HistoryInner::inSelectionMode() const { const auto now = inSelectionMode; if (_lastInSelectionMode != now) { _lastInSelectionMode = now; + if (now) { + _overlayHost->hide(); + } if (_inSelectionModeAnimation.animating()) { const auto progress = !now ? _inSelectionModeAnimation.value(0.) diff --git a/Telegram/SourceFiles/history/view/history_view_chat_section.cpp b/Telegram/SourceFiles/history/view/history_view_chat_section.cpp index 65f8778f9b..45a5599e14 100644 --- a/Telegram/SourceFiles/history/view/history_view_chat_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_chat_section.cpp @@ -1054,6 +1054,7 @@ void ChatWidget::setupSwipeReplyAndBack() { return result; } + _inner->hideElementOverlay(); result.msgBareId = view->data()->fullId().msg.bare; result.callback = [=, itemId = view->data()->fullId()] { const auto still = show->session().data().message(itemId); diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 3f3a3f11e1..f4de077de1 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -572,6 +572,7 @@ ListWidget::ListWidget( _delegate->listChatWideValue( ) | rpl::on_next([=](bool wide) { _isChatWide = wide; + _overlayHost->hide(); }, lifetime()); _selectScroll.scrolls( @@ -1317,6 +1318,9 @@ SelectionModeResult ListWidget::inSelectionMode() const { || (_mouseAction == MouseAction::Selecting && _lastInSelectionMode); if (_lastInSelectionMode != now) { _lastInSelectionMode = now; + if (now) { + _overlayHost->hide(); + } if (_inSelectionModeAnimation.animating()) { const auto progress = !now ? _inSelectionModeAnimation.value(0.) @@ -1918,6 +1922,10 @@ void ListWidget::elementSubmitAddPollOption(FullMsgId context) { _overlayHost->triggerSubmit(context); } +void ListWidget::hideElementOverlay() { + _overlayHost->hide(); +} + void ListWidget::elementOpenPhoto( not_null photo, FullMsgId context) { @@ -2061,6 +2069,9 @@ void ListWidget::updateSize() { } void ListWidget::resizeToWidth(int newWidth, int minHeight) { + if (width() != newWidth) { + _overlayHost->hide(); + } _minHeight = minHeight; RpWidget::resizeToWidth(newWidth); restoreScrollPosition(); diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.h b/Telegram/SourceFiles/history/view/history_view_list_widget.h index 35de405114..69d9a9da2e 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.h +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.h @@ -423,6 +423,7 @@ public: FullMsgId context, QRect optionRect) override; void elementSubmitAddPollOption(FullMsgId context) override; + void hideElementOverlay(); void elementOpenPhoto( not_null photo, FullMsgId context) override;