summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;