From 5bd45e9a208dc5e8a3ae9a6b7d5b30523346e20e Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 4 Sep 2024 16:04:42 +0300 Subject: [PATCH] Fixed updating of left userpic with offset from swipe-on-reply. --- .../SourceFiles/history/history_inner_widget.cpp | 15 ++++++++++++--- .../history/view/history_view_list_widget.cpp | 11 ++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index a8911f2b3..1b0ff5bb0 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -1235,10 +1235,19 @@ void HistoryInner::paintEvent(QPaintEvent *e) { // paint the userpic if it intersects the painted rect if (userpicTop + st::msgPhotoSize > clip.top()) { const auto item = view->data(); - const auto hasTranslation = _gestureHorizontal.translation - && (_gestureHorizontal.msgBareId == item->fullId().msg.bare); + const auto hasTranslation = context.gestureHorizontal.translation + && (context.gestureHorizontal.msgBareId + == item->fullId().msg.bare); if (hasTranslation) { - p.translate(_gestureHorizontal.translation, 0); + p.translate(context.gestureHorizontal.translation, 0); + update( + QRect( + st::historyPhotoLeft + + context.gestureHorizontal.translation, + userpicTop, + st::msgPhotoSize + - context.gestureHorizontal.translation, + st::msgPhotoSize)); } if (const auto from = item->displayFrom()) { Dialogs::Ui::PaintUserpic( diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index e54affc2c..6f6484dc9 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -2306,9 +2306,18 @@ void ListWidget::paintUserpics( if (userpicTop + st::msgPhotoSize > clip.top()) { const auto item = view->data(); const auto hasTranslation = context.gestureHorizontal.translation - && (context.gestureHorizontal.msgBareId == item->fullId().msg.bare); + && (context.gestureHorizontal.msgBareId + == item->fullId().msg.bare); if (hasTranslation) { p.translate(context.gestureHorizontal.translation, 0); + update( + QRect( + st::historyPhotoLeft + + context.gestureHorizontal.translation, + userpicTop, + st::msgPhotoSize + - context.gestureHorizontal.translation, + st::msgPhotoSize)); } if (const auto from = item->displayFrom()) { from->paintUserpicLeft(