diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index c1a630b78..afbf0ca77 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -624,7 +624,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) { bool selected, bool mayBeActive) { const auto key = row->key(); - const auto active = mayBeActive && (activeEntry.key == key); + const auto active = mayBeActive && isRowActive(row, activeEntry); const auto forum = key.history() && key.history()->isForum(); if (forum && !_topicJumpCache) { _topicJumpCache = std::make_unique(); @@ -977,6 +977,14 @@ void InnerWidget::paintCollapsedRow( }); } +bool InnerWidget::isRowActive( + not_null row, + const RowDescriptor &entry) const { + const auto key = row->key(); + return (entry.key == key) + || (entry.key.sublist() && key.peer() && key.peer()->isSelf()); +} + bool InnerWidget::isSearchResultActive( not_null result, const RowDescriptor &entry) const { diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h index 55d257bb5..7915bd912 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h @@ -231,6 +231,7 @@ private: void switchToFilter(FilterId filterId); bool chooseHashtag(); ChosenRow computeChosenRow() const; + bool isRowActive(not_null row, const RowDescriptor &entry) const; bool isSearchResultActive( not_null result, const RowDescriptor &entry) const; diff --git a/Telegram/SourceFiles/history/view/history_view_sublist_section.cpp b/Telegram/SourceFiles/history/view/history_view_sublist_section.cpp index 5664029bb..7481b5eb5 100644 --- a/Telegram/SourceFiles/history/view/history_view_sublist_section.cpp +++ b/Telegram/SourceFiles/history/view/history_view_sublist_section.cpp @@ -259,7 +259,7 @@ not_null SublistWidget::sublist() const { Dialogs::RowDescriptor SublistWidget::activeChat() const { return { - _history, + _sublist, FullMsgId(_history->peer->id, ShowAtUnreadMsgId) }; } diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 202ac2589..511954377 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -2446,6 +2446,10 @@ auto MainWidget::thirdSectionForCurrentMainSection( return std::make_shared( peer, Info::Memento::DefaultSection(peer)); + } else if (const auto sublist = key.sublist()) { + return std::make_shared( + session().user(), + Info::Memento::DefaultSection(session().user())); } Unexpected("Key in MainWidget::thirdSectionForCurrentMainSection()."); }