From 4b003947b85537037d9146b8bdf3d95403e7902c Mon Sep 17 00:00:00 2001 From: Palana Date: Sat, 27 Jun 2015 09:29:17 +0200 Subject: [PATCH] UI: Clear global signals in closeEvent --- obs/window-basic-main.cpp | 15 +++++++++------ obs/window-basic-main.hpp | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 2c19ace85..cb19c6052 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -622,17 +622,18 @@ bool OBSBasic::InitBasicConfig() void OBSBasic::InitOBSCallbacks() { - signal_handler_connect(obs_get_signal_handler(), "source_add", + signalHandlers.reserve(signalHandlers.size() + 6); + signalHandlers.emplace_back(obs_get_signal_handler(), "source_add", OBSBasic::SourceAdded, this); - signal_handler_connect(obs_get_signal_handler(), "source_remove", + signalHandlers.emplace_back(obs_get_signal_handler(), "source_remove", OBSBasic::SourceRemoved, this); - signal_handler_connect(obs_get_signal_handler(), "channel_change", + signalHandlers.emplace_back(obs_get_signal_handler(), "channel_change", OBSBasic::ChannelChanged, this); - signal_handler_connect(obs_get_signal_handler(), "source_activate", + signalHandlers.emplace_back(obs_get_signal_handler(), "source_activate", OBSBasic::SourceActivated, this); - signal_handler_connect(obs_get_signal_handler(), "source_deactivate", + signalHandlers.emplace_back(obs_get_signal_handler(), "source_deactivate", OBSBasic::SourceDeactivated, this); - signal_handler_connect(obs_get_signal_handler(), "source_rename", + signalHandlers.emplace_back(obs_get_signal_handler(), "source_rename", OBSBasic::SourceRenamed, this); } @@ -1974,6 +1975,8 @@ void OBSBasic::closeEvent(QCloseEvent *event) if (logUploadThread) logUploadThread->wait(); + signalHandlers.clear(); + /* Check all child dialogs and ensure they run their proper closeEvent * methods before exiting the application. Otherwise Qt doesn't send * the proper QCloseEvent messages. */ diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index a8b3582b0..2ccd1406e 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -66,6 +66,8 @@ private: std::vector volumes; + std::vector signalHandlers; + bool loaded = false; QPointer saveTimer;