diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-07-14 03:14:30 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-07-14 03:14:30 -0400 |
commit | a30f7346f7d234566ab3f18c979e4a5d7bf0c83a (patch) | |
tree | 9ddfaa29877da2c91ec983791e7b065d481fdf32 /components | |
parent | 8c3752ef9f9522cff6496c3a53cefb1f48fc5c92 (diff) | |
download | abaddon-portaudio-a30f7346f7d234566ab3f18c979e4a5d7bf0c83a.tar.gz abaddon-portaudio-a30f7346f7d234566ab3f18c979e4a5d7bf0c83a.zip |
restore expansion cuz gtk behaves annoyingly
Diffstat (limited to 'components')
-rw-r--r-- | components/channels.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/channels.cpp b/components/channels.cpp index 1f730a9..38793f3 100644 --- a/components/channels.cpp +++ b/components/channels.cpp @@ -39,6 +39,12 @@ ChannelList::ChannelList() m_view.set_model(m_model); m_model->set_sort_column(m_columns.m_sort, Gtk::SORT_ASCENDING); + m_model->signal_row_inserted().connect([this](const Gtk::TreeModel::Path &path, const Gtk::TreeModel::iterator &iter) { + if (m_updating_listing) return; + if (auto parent = iter->parent(); parent && (*parent)[m_columns.m_expanded]) + m_view.expand_row(m_model->get_path(parent), false); + }); + m_view.show(); add(m_view); @@ -56,6 +62,8 @@ ChannelList::ChannelList() } void ChannelList::UpdateListing() { + m_updating_listing = true; + m_model->clear(); auto &discord = Abaddon::Get().GetDiscordClient(); @@ -71,6 +79,8 @@ void ChannelList::UpdateListing() { (*iter)[m_columns.m_sort] = sortnum++; } + m_updating_listing = false; + AddPrivateChannels(); } |