From dd914976e8eb566403056c8566941a391813868f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 9 Feb 2023 20:11:07 +0300 Subject: fix for incorrect log window drawing --- include/m_chat_int.h | 1 + src/mir_app/src/srmm_base.cpp | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/include/m_chat_int.h b/include/m_chat_int.h index d72bff1b0f..94939f412c 100644 --- a/include/m_chat_int.h +++ b/include/m_chat_int.h @@ -142,6 +142,7 @@ struct MIR_APP_EXPORT GCSessionInfoBase : public MZeroedObject, public MNonCopya bool bInitDone; bool bHasToolTip; bool bTrimmed; + bool bHistoryInit; char* pszModule; wchar_t* ptszID; diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 1a83d7aa86..10bb17736a 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -638,13 +638,11 @@ void CSrmmBaseDialog::RedrawLog() void CSrmmBaseDialog::UpdateChatLog() { - if (!m_si->pMI->bDatabase) + if (!m_si->pMI->bDatabase || m_si->bHistoryInit) return; GetFirstEvent(); - SESSION_INFO *tmp = g_chatApi.SM_CreateSession(); - auto *szProto = Proto_GetBaseAccountName(m_hContact); for (MEVENT hDbEvent = m_hDbEventFirst; hDbEvent; hDbEvent = db_event_next(m_hContact, hDbEvent)) { DB::EventInfo dbei; @@ -666,14 +664,13 @@ void CSrmmBaseDialog::UpdateChatLog() gce.time = dbei.timestamp; if (USERINFO *ui = g_chatApi.UM_FindUser(m_si, wszUserId)) gce.pszNick.w = ui->pszNick; - SM_AddEvent(tmp, &gce, false); + SM_AddEvent(m_si, &gce, false); } } } - m_pLog->LogEvents(tmp->pLogEnd, false); - g_chatApi.LM_RemoveAll(&tmp->pLog, &tmp->pLogEnd); - delete tmp; + m_si->bHistoryInit = true; + m_pLog->LogEvents(m_si->pLogEnd, false); } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3