From a33e78824264ed11bde0051914a3d4d1e68d44ed Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 18 Sep 2024 19:04:48 +0300 Subject: =?UTF-8?q?fixes=20#4675=20(=D0=9D=D0=B5=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D1=8E=D1=82=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B2=20StdMsg/Scriver)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/stdmsg/src/msgdialog.cpp | 28 ++++++++++++++-------------- src/core/stdmsg/src/msgs.cpp | 5 +++-- src/mir_app/src/srmm_base.cpp | 8 ++++++++ 3 files changed, 25 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index b7cdfbdc3c..a9a7b46e66 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -314,16 +314,20 @@ void CMsgDialog::onClick_Ok(CCtrlButton *pButton) if (!pButton->Enabled()) return; - ptrA msgText(m_message.GetRichTextRtf(true)); - if (msgText == nullptr) + ptrA streamOut(m_message.GetRichTextRtf(!m_bSendFormat)); + if (streamOut == nullptr) return; - if (isChat()) { - CMStringW ptszText(ptrW(mir_utf8decodeW(msgText))); - DoRtfToTags(ptszText); - ptszText.Trim(); + CMStringW wszText(ptrW(mir_utf8decodeW(streamOut))); + if (wszText.IsEmpty()) + return; + + if (m_bSendFormat) + DoRtfToTags(wszText); + wszText.TrimRight(); - m_cmdList.insert(mir_wstrdup(ptszText)); + if (isChat()) { + m_cmdList.insert(mir_wstrdup(wszText)); m_cmdListInd = -1; if (m_si->pMI->bAckMsg) { @@ -332,16 +336,12 @@ void CMsgDialog::onClick_Ok(CCtrlButton *pButton) } else m_message.SetText(L""); - Chat_DoEventHook(m_si, GC_USER_MESSAGE, nullptr, ptszText, 0); + Chat_DoEventHook(m_si, GC_USER_MESSAGE, nullptr, wszText, 0); } else { - ptrW temp(mir_utf8decodeW(msgText)); - if (!temp[0]) - return; - - int sendId = SendMessageDirect(m_hContact, m_hQuoteEvent, rtrimw(temp)); + int sendId = SendMessageDirect(m_hContact, m_hQuoteEvent, wszText); if (sendId) { - m_cmdList.insert(temp.detach()); + m_cmdList.insert(wszText.Detach()); m_cmdListInd = -1; if (m_nTypeMode == PROTOTYPE_SELFTYPING_ON) diff --git a/src/core/stdmsg/src/msgs.cpp b/src/core/stdmsg/src/msgs.cpp index cba06ad66e..b4583d9020 100644 --- a/src/core/stdmsg/src/msgs.cpp +++ b/src/core/stdmsg/src/msgs.cpp @@ -354,8 +354,8 @@ int RegisterToolbarIcons(WPARAM, LPARAM) bbd.pwszTooltip = LPGENW("View user's history (Ctrl+H)"); g_plugin.addButton(&bbd); - // chat buttons - bbd.bbbFlags = BBBF_ISPUSHBUTTON | BBBF_ISCHATBUTTON | BBBF_CREATEBYID | BBBF_NOREADONLY; + // format buttons + bbd.bbbFlags = BBBF_ISPUSHBUTTON | BBBF_ISCHATBUTTON | BBBF_ISIMBUTTON | BBBF_CREATEBYID | BBBF_NOREADONLY; bbd.dwButtonID = IDC_SRMM_BOLD; bbd.dwDefPos = 10; bbd.hIcon = g_plugin.getIconHandle(IDI_BBOLD); @@ -391,6 +391,7 @@ int RegisterToolbarIcons(WPARAM, LPARAM) bbd.pwszTooltip = LPGENW("Select a background color for the text (Ctrl+L)"); g_plugin.addButton(&bbd); + // chat buttons bbd.bbbFlags = BBBF_ISCHATBUTTON | BBBF_ISRSIDEBUTTON | BBBF_CREATEBYID; bbd.dwButtonID = IDC_SRMM_CHANMGR; bbd.dwDefPos = 30; diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 6788f1f424..7a3aa5456d 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -545,6 +545,14 @@ bool CSrmmBaseDialog::OnInitDialog() // three buttons below are initiated inside this call, so button creation must precede subclassing Srmm_CreateToolbarIcons(this, isChat() ? BBBF_ISCHATBUTTON : BBBF_ISIMBUTTON); + if (!m_bSendFormat) { + m_btnBold.Disable(); + m_btnItalic.Disable(); + m_btnUnderline.Disable(); + m_btnColor.Disable(); + m_btnBkColor.Disable(); + } + mir_subclassWindow(m_btnFilter.GetHwnd(), stubButtonSubclassProc); mir_subclassWindow(m_btnColor.GetHwnd(), stubButtonSubclassProc); mir_subclassWindow(m_btnBkColor.GetHwnd(), stubButtonSubclassProc); -- cgit v1.2.3