diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-10-02 02:50:48 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-10-02 02:50:48 -0400 |
commit | d8d9f1b857da6e7beaf8b998f50b20ea295ab92a (patch) | |
tree | 006ee961e2ac7f383737f8293629269ff00443f7 | |
parent | e08e3106d68da08c58f3a5bde968d4367bef78df (diff) | |
download | abaddon-portaudio-d8d9f1b857da6e7beaf8b998f50b20ea295ab92a.tar.gz abaddon-portaudio-d8d9f1b857da6e7beaf8b998f50b20ea295ab92a.zip |
close voice window on context menu disconnect
-rw-r--r-- | src/abaddon.cpp | 5 | ||||
-rw-r--r-- | src/abaddon.hpp | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/abaddon.cpp b/src/abaddon.cpp index 4c879ca..6dc5fd1 100644 --- a/src/abaddon.cpp +++ b/src/abaddon.cpp @@ -420,6 +420,7 @@ void Abaddon::DiscordOnThreadUpdate(const ThreadUpdateData &data) { #ifdef WITH_VOICE void Abaddon::OnVoiceConnected() { auto *wnd = new VoiceWindow(m_discord.GetVoiceChannelID()); + m_voice_window = wnd; wnd->signal_mute().connect([this](bool is_mute) { m_discord.SetVoiceMuted(is_mute); @@ -440,6 +441,7 @@ void Abaddon::OnVoiceConnected() { wnd->show(); wnd->signal_hide().connect([this, wnd]() { m_discord.DisconnectFromVoice(); + m_voice_window = nullptr; delete wnd; delete m_user_menu; SetupUserMenu(); @@ -448,6 +450,9 @@ void Abaddon::OnVoiceConnected() { void Abaddon::OnVoiceDisconnected() { m_audio->RemoveAllSSRCs(); + if (m_voice_window != nullptr) { + m_voice_window->close(); + } } #endif diff --git a/src/abaddon.hpp b/src/abaddon.hpp index a15670b..f45f435 100644 --- a/src/abaddon.hpp +++ b/src/abaddon.hpp @@ -162,6 +162,7 @@ private: #ifdef WITH_VOICE std::unique_ptr<AudioManager> m_audio; + Gtk::Window *m_voice_window = nullptr; #endif mutable std::mutex m_mutex; |