From bdf8a37a8f0f484eb5370bcaedf546f42c88a0e2 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 21 Mar 2025 17:55:32 +0300 Subject: [PATCH] Guarded repaint of special quick dialog actions that lead to de-listing. --- Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index 111c226809..e2aa2c5a43 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -1987,11 +1987,15 @@ bool InnerWidget::addQuickActionRipple( const auto size = QSize( st::dialogsQuickActionRippleSize, row->height()); + const auto isRemovingFromList + = (action == Dialogs::Ui::QuickDialogAction::Archive); if (!context->ripple) { context->ripple = std::make_unique( st::defaultRippleAnimation, Ui::RippleAnimation::RectMask(size), - updateCallback); + isRemovingFromList + ? Fn([=] { update(); }) + : updateCallback); } if (!context->rippleFg) { context->rippleFg = std::make_unique( @@ -2012,7 +2016,9 @@ bool InnerWidget::addQuickActionRipple( action, _filterId)); }), - std::move(updateCallback)); + isRemovingFromList + ? Fn([=] { update(); }) + : std::move(updateCallback)); } context->ripple->add(QPoint(size.width() / 2, size.height() / 2)); context->rippleFg->add(QPoint(size.width() / 2, size.height() / 2));