From 39d556e119133f3aacb1fdb7bcf1ec8b4f23deaf Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 13 Mar 2021 21:26:51 +0300 Subject: tabSRMM: perversion with bit flags removed --- plugins/TabSRMM/src/msglog.cpp | 18 ++++++++++-------- plugins/TabSRMM/src/msgoptions.cpp | 2 +- plugins/TabSRMM/src/msgs.h | 5 ++++- 3 files changed, 15 insertions(+), 10 deletions(-) (limited to 'plugins') diff --git a/plugins/TabSRMM/src/msglog.cpp b/plugins/TabSRMM/src/msglog.cpp index 37865e6ce2..8a1d4b6e29 100644 --- a/plugins/TabSRMM/src/msglog.cpp +++ b/plugins/TabSRMM/src/msglog.cpp @@ -469,16 +469,16 @@ static char* Template_CreateRTFFromDbEvent(CMsgDialog *dat, MCONTACT hContact, M CMStringA str; // means: last \\par was deleted to avoid new line at end of log - if (dat->m_isAutoRTL & 2) { + if (dat->m_bLastParaDeleted) { str.Append("\\par"); - dat->m_isAutoRTL &= ~2; + dat->m_bLastParaDeleted = false; } if (dat->m_dwFlags & MWF_LOG_RTL) dbei.flags |= DBEF_RTL; if (dbei.flags & DBEF_RTL) - dat->m_isAutoRTL |= 1; + dat->m_bRtlText = true; DWORD dwEffectiveFlags = dat->m_dwFlags; @@ -518,7 +518,7 @@ static char* Template_CreateRTFFromDbEvent(CMsgDialog *dat, MCONTACT hContact, M streamData->isEmpty = FALSE; - if (dat->m_isAutoRTL & 1) { + if (dat->m_bRtlText) { if (dbei.flags & DBEF_RTL) str.Append("\\ltrch\\rtlch"); else @@ -1267,7 +1267,7 @@ void CLogWindow::LogEvents(MEVENT hDbEventFirst, int count, bool fAppend, DBEVEN sel.cpMax = GetWindowTextLength(m_rtf.GetHwnd()); m_rtf.SendMsg(EM_EXSETSEL, 0, (LPARAM)&sel); startAt = 0; - m_pDlg.m_isAutoRTL = 0; + m_pDlg.m_bLastParaDeleted = m_pDlg.m_bRtlText = false; } // begin to draw @@ -1276,12 +1276,12 @@ void CLogWindow::LogEvents(MEVENT hDbEventFirst, int count, bool fAppend, DBEVEN m_pDlg.m_hDbEventLast = streamData.hDbEventLast; - if (m_pDlg.m_isAutoRTL & 1) + if (dbei_s || m_pDlg.m_bRtlText) m_rtf.SendMsg(EM_SETBKGNDCOLOR, 0, (LOWORD(m_pDlg.m_iLastEventType) & DBEF_SENT) ? (fAppend ? m_pDlg.m_pContainer->m_theme.outbg : m_pDlg.m_pContainer->m_theme.oldoutbg) : (fAppend ? m_pDlg.m_pContainer->m_theme.inbg : m_pDlg.m_pContainer->m_theme.oldinbg)); - if (!dbei_s && !(m_pDlg.m_isAutoRTL & 1)) { + if (!m_pDlg.m_bRtlText) { GETTEXTLENGTHEX gtxl = { 0 }; gtxl.codepage = 1200; gtxl.flags = GTL_DEFAULT | GTL_PRECISE | GTL_NUMCHARS; @@ -1290,7 +1290,9 @@ void CLogWindow::LogEvents(MEVENT hDbEventFirst, int count, bool fAppend, DBEVEN sel.cpMin = sel.cpMax - 1; m_rtf.SendMsg(EM_EXSETSEL, 0, (LPARAM)&sel); m_rtf.SendMsg(EM_REPLACESEL, FALSE, (LPARAM)L""); - m_pDlg.m_isAutoRTL |= 2; + + if (!dbei_s) + m_pDlg.m_bLastParaDeleted = true; } BOOL isSent; diff --git a/plugins/TabSRMM/src/msgoptions.cpp b/plugins/TabSRMM/src/msgoptions.cpp index 28aaf2a4b9..96ff92a1e5 100644 --- a/plugins/TabSRMM/src/msgoptions.cpp +++ b/plugins/TabSRMM/src/msgoptions.cpp @@ -607,7 +607,7 @@ public: { m_pLog = new CLogWindow(*this); - m_dwFlags = m_pContainer->m_theme.dwFlags; + m_dwFlags = m_pContainer->m_theme.dwFlags | MWF_LOG_RTL; m_cache = new CContactCache(m_hContact); m_cache->updateNick(); diff --git a/plugins/TabSRMM/src/msgs.h b/plugins/TabSRMM/src/msgs.h index 29f7d9f3e1..a9660dcf0e 100644 --- a/plugins/TabSRMM/src/msgs.h +++ b/plugins/TabSRMM/src/msgs.h @@ -473,9 +473,12 @@ public: bool m_bErrorState; bool m_bDividerWanted, m_bDividerSet; bool m_bSplitterOverride; + + bool m_bRtlText; + bool m_bLastParaDeleted; + int m_sendMode; HKL m_hkl; // keyboard layout identifier - DWORD m_isAutoRTL; DWORD m_idle; DWORD m_dwFlags; DWORD m_dwUnread; -- cgit v1.2.3