summaryrefslogtreecommitdiff
path: root/protocols/IRCG
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/IRCG')
-rw-r--r--protocols/IRCG/src/input.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/protocols/IRCG/src/input.cpp b/protocols/IRCG/src/input.cpp
index f5a5499348..2fd51e9fd1 100644
--- a/protocols/IRCG/src/input.cpp
+++ b/protocols/IRCG/src/input.cpp
@@ -421,17 +421,19 @@ BOOL CIrcProto::DoHardcodedCommand(CMStringW text, wchar_t *window, MCONTACT hCo
}
if (command == L"/channelmanager") {
- if (window && !hContact && IsChannel(window)) {
- if (IsConnected()) {
- if (m_managerDlg != nullptr) {
- SetActiveWindow(m_managerDlg->GetHwnd());
- m_managerDlg->Close();
- }
- else {
- m_managerDlg = new CManagerDlg(this);
- m_managerDlg->Show();
- m_managerDlg->InitManager(1, window);
- }
+ if (window && !hContact && IsChannel(window) && IsConnected()) {
+ if (m_managerDlg != nullptr) {
+ SetActiveWindow(m_managerDlg->GetHwnd());
+ m_managerDlg->Close();
+ }
+ else {
+ m_managerDlg = new CManagerDlg(this);
+ if (auto *si = Chat_Find(window, m_szModuleName))
+ if (si->pDlg)
+ m_managerDlg->SetParent(si->pDlg->GetHwnd());
+
+ m_managerDlg->Show();
+ m_managerDlg->InitManager(1, window);
}
}