summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-10-02 02:50:48 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-10-02 02:50:48 -0400
commitd8d9f1b857da6e7beaf8b998f50b20ea295ab92a (patch)
tree006ee961e2ac7f383737f8293629269ff00443f7 /src
parente08e3106d68da08c58f3a5bde968d4367bef78df (diff)
downloadabaddon-portaudio-d8d9f1b857da6e7beaf8b998f50b20ea295ab92a.tar.gz
abaddon-portaudio-d8d9f1b857da6e7beaf8b998f50b20ea295ab92a.zip
close voice window on context menu disconnect
Diffstat (limited to 'src')
-rw-r--r--src/abaddon.cpp5
-rw-r--r--src/abaddon.hpp1
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;