From 22319c1510762771dd0399118ed048ca993d04c6 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 11 Aug 2023 18:58:20 +0300 Subject: =?UTF-8?q?fixes=20#3634=20(tabSRMM=20=D0=B7=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=20=D0=BF=D1=80=D0=BE=D1=89?= =?UTF-8?q?=D1=91=D0=BB=D0=BA=D0=B0=D1=82=D1=8C=20=D0=BA=D0=B0=D0=B6=D0=B4?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=BD=D0=B5=D0=BF=D1=80=D0=BE=D1=87=D0=B8=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/TabSRMM/src/msgdlgother.cpp | 9 +++++++++ plugins/TabSRMM/src/msglog.cpp | 7 ++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'plugins/TabSRMM/src') diff --git a/plugins/TabSRMM/src/msgdlgother.cpp b/plugins/TabSRMM/src/msgdlgother.cpp index 7942e378cb..badc8c911f 100644 --- a/plugins/TabSRMM/src/msgdlgother.cpp +++ b/plugins/TabSRMM/src/msgdlgother.cpp @@ -745,6 +745,15 @@ void CMsgDialog::FlashOnClist(MEVENT hEvent, const DBEVENTINFO *dbei) return; if ((GetForegroundWindow() != m_pContainer->m_hwnd || m_pContainer->m_hwndActive != m_hwnd) && !(dbei->flags & DBEF_SENT) && dbei->eventType == EVENTTYPE_MESSAGE && !m_bFlashClist) { + for (int i = 0;; i++) { + auto *cle = Clist_GetEvent(m_hContact, i); + if (cle == nullptr) + break; + + if (!mir_strcmp(cle->pszService, MS_MSG_READMESSAGE)) + return; + } + CLISTEVENT cle = {}; cle.hContact = m_hContact; cle.hDbEvent = hEvent; diff --git a/plugins/TabSRMM/src/msglog.cpp b/plugins/TabSRMM/src/msglog.cpp index aa049add8b..dca3a53599 100644 --- a/plugins/TabSRMM/src/msglog.cpp +++ b/plugins/TabSRMM/src/msglog.cpp @@ -570,9 +570,10 @@ bool CLogWindow::CreateRtfEvent(RtfLogStreamData *streamData, DB::EventInfo &dbe BOOL isSent = (dbei.flags & DBEF_SENT); BOOL bIsStatusChangeEvent = IsStatusEvent(dbei.eventType); - if (!isSent && (bIsStatusChangeEvent || dbei.eventType == EVENTTYPE_MESSAGE || dbei.isSrmm())) { - db_event_markRead(streamData->hContact, streamData->hDbEvent); - Clist_RemoveEvent(streamData->hContact, streamData->hDbEvent); + if (!isSent && bIsStatusChangeEvent) { + if (!dbei.markedRead()) + db_event_markRead(streamData->hContact, streamData->hDbEvent); + Clist_RemoveEvent(-1, streamData->hDbEvent); } CMStringW msg(ptrW(DbEvent_GetTextW(&dbei, CP_UTF8))); -- cgit v1.2.3