summaryrefslogtreecommitdiff
path: root/plugins/TabSRMM/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2023-03-20 17:38:47 +0300
committerGeorge Hazan <ghazan@miranda.im>2023-03-20 17:38:47 +0300
commitf12de5d0954a0e24852a1a309dffee37b5536970 (patch)
treea37e69e3317e8e8733c9dfc948d12f57be207a50 /plugins/TabSRMM/src
parent54b2cd28874a94509275206e8869d0d26eabd451 (diff)
fixes #3441 completely
Diffstat (limited to 'plugins/TabSRMM/src')
-rw-r--r--plugins/TabSRMM/src/chat_tools.cpp9
-rw-r--r--plugins/TabSRMM/src/msgdialog.cpp1
-rw-r--r--plugins/TabSRMM/src/msgdlgother.cpp3
3 files changed, 8 insertions, 5 deletions
diff --git a/plugins/TabSRMM/src/chat_tools.cpp b/plugins/TabSRMM/src/chat_tools.cpp
index 754f19705b..107d55d855 100644
--- a/plugins/TabSRMM/src/chat_tools.cpp
+++ b/plugins/TabSRMM/src/chat_tools.cpp
@@ -357,12 +357,15 @@ BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight
void Chat_SetFilters(SESSION_INFO *si)
{
+ bool bEnabled = db_get_b(si->hContact, CHAT_MODULE, "FilterEnabled") != 0;
+
uint32_t dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "FilterFlags", GC_EVENT_ALL);
- uint32_t dwMask = db_get_dw(si->hContact, CHAT_MODULE, "FilterMask", 0);
+ uint32_t dwMask = (bEnabled) ? db_get_dw(si->hContact, CHAT_MODULE, "FilterMask") : 0;
CMsgDialog *pDlg = si->pDlg;
if (pDlg) {
pDlg->m_iLogFilterFlags = Chat::iFilterFlags;
+
for (int i = 0; i < 32; i++) {
uint32_t dwBit = 1 << i;
if (dwMask & dwBit)
@@ -371,7 +374,7 @@ void Chat_SetFilters(SESSION_INFO *si)
}
dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "PopupFlags", GC_EVENT_HIGHLIGHT);
- dwMask = db_get_dw(si->hContact, CHAT_MODULE, "PopupMask", 0);
+ dwMask = (bEnabled) ? db_get_dw(si->hContact, CHAT_MODULE, "PopupMask", 0) : 0;
si->iPopupFlags = Chat::iPopupFlags;
for (int i = 0; i < 32; i++) {
@@ -381,7 +384,7 @@ void Chat_SetFilters(SESSION_INFO *si)
}
dwFlags_local = db_get_dw(si->hContact, CHAT_MODULE, "TrayIconFlags", GC_EVENT_HIGHLIGHT);
- dwMask = db_get_dw(si->hContact, CHAT_MODULE, "TrayIconMask", 0);
+ dwMask = (bEnabled) ? db_get_dw(si->hContact, CHAT_MODULE, "TrayIconMask", 0) : 0;
si->iTrayFlags = Chat::iTrayIconFlags;
for (int i = 0; i < 32; i++) {
diff --git a/plugins/TabSRMM/src/msgdialog.cpp b/plugins/TabSRMM/src/msgdialog.cpp
index acc2e1bd44..0c0e1257be 100644
--- a/plugins/TabSRMM/src/msgdialog.cpp
+++ b/plugins/TabSRMM/src/msgdialog.cpp
@@ -1004,6 +1004,7 @@ void CMsgDialog::onClick_Filter(CCtrlButton *pButton)
RedrawLog();
UpdateTitle();
db_set_b(m_si->hContact, CHAT_MODULE, "FilterEnabled", m_bFilterEnabled);
+ Chat_SetFilters(m_si);
}
}
diff --git a/plugins/TabSRMM/src/msgdlgother.cpp b/plugins/TabSRMM/src/msgdlgother.cpp
index ff9dac657e..88f6e5d735 100644
--- a/plugins/TabSRMM/src/msgdlgother.cpp
+++ b/plugins/TabSRMM/src/msgdlgother.cpp
@@ -2021,13 +2021,12 @@ INT_PTR CALLBACK CMsgDialog::FilterWndProc(HWND hwndDlg, UINT uMsg, WPARAM wPara
db_set_dw(pDlg->m_hContact, CHAT_MODULE, "TrayIconFlags", iFlags);
db_set_dw(pDlg->m_hContact, CHAT_MODULE, "TrayIconMask", dwMask);
}
- Chat_SetFilters(pDlg->getChat());
if (pDlg->m_bFilterEnabled) {
if (pDlg->m_iLogFilterFlags == 0)
pDlg->m_btnFilter.Click();
+
pDlg->RedrawLog();
- db_set_b(pDlg->m_hContact, CHAT_MODULE, "FilterEnabled", pDlg->m_bFilterEnabled);
}
}
DestroyWindow(hwndDlg);