summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/stdmsg/src/msgdialog.cpp28
-rw-r--r--src/core/stdmsg/src/msgs.cpp5
-rw-r--r--src/mir_app/src/srmm_base.cpp8
3 files changed, 25 insertions, 16 deletions
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);