diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/channellist/channellisttree.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/components/channellist/channellisttree.cpp b/src/components/channellist/channellisttree.cpp index 0e2cda6..b66beb0 100644 --- a/src/components/channellist/channellisttree.cpp +++ b/src/components/channellist/channellisttree.cpp @@ -639,6 +639,14 @@ void ChannelListTree::SetActiveChannel(Snowflake id, bool expand_to) { const auto channel_iter = GetIteratorForRowFromID(id); if (channel_iter) { + m_view.get_selection()->unselect_all(); + const auto filter_iter = m_filter_model->convert_child_iter_to_iter(channel_iter); + if (filter_iter) { + if (expand_to) { + m_view.expand_to_path(m_filter_model->get_path(filter_iter)); + } + m_view.get_selection()->select(filter_iter); + } } else { m_view.get_selection()->unselect_all(); const auto channel = Abaddon::Get().GetDiscordClient().GetChannel(id); |