From 0163938e00c478f478068905891e0a933158abc9 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 30 Jan 2024 13:15:38 +0400 Subject: [PATCH] Add shadow below tags list widget. --- .../controls/history_view_compose_search.cpp | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/history/view/controls/history_view_compose_search.cpp b/Telegram/SourceFiles/history/view/controls/history_view_compose_search.cpp index 930e4c369..5d3b1eee1 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_compose_search.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_compose_search.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/widgets/multi_select.h" +#include "ui/widgets/shadow.h" #include "ui/widgets/scroll_area.h" #include "ui/painter.h" #include "window/window_session_controller.h" @@ -433,11 +434,27 @@ void TopBar::refreshTags() { &_history->owner(), reactions->myTagsValue(sublist), _searchTagsSelected); + + const auto parent = _searchTags->lifetime().make_state( + this); + const auto shadow = _searchTags->lifetime().make_state( + parentWidget()); + parent->show(); + _searchTags->heightValue( - ) | rpl::start_with_next([=] { + ) | rpl::start_with_next([=](int height) { updateSize(); + shadow->setVisible(height > 0); }, _searchTags->lifetime()); + geometryValue() | rpl::start_with_next([=](QRect geometry) { + shadow->setGeometry( + geometry.x(), + geometry.y() + geometry.height(), + geometry.width(), + st::lineWidth); + }, shadow->lifetime()); + _searchTags->selectedChanges( ) | rpl::start_with_next([=](std::vector &&list) { _searchTagsSelected = std::move(list); @@ -450,10 +467,6 @@ void TopBar::refreshTags() { }); } - const auto parent = _searchTags->lifetime().make_state( - this); - parent->show(); - const auto padding = st::searchInChatTagsPadding; const auto position = QPoint(padding.left(), padding.top());