[MailNews] Allow shift-clicking on Edit As New to edit a message as plaintext.

Ref: BZ 731688
This commit is contained in:
Jeremy Andrews 2022-06-01 19:32:33 -05:00 committed by roytam1
commit 6182744d96
4 changed files with 115 additions and 29 deletions

View file

@ -1070,7 +1070,8 @@ nsMsgCompose::Initialize(nsIMsgComposeParams *aParams,
// by checking the identity prefs - but don't clobber the values for
// drafts and templates as they were set up already by mime when
// initializing the message.
if (m_identity && draftId.IsEmpty() && type != nsIMsgCompType::Template)
if (m_identity && draftId.IsEmpty() && type != nsIMsgCompType::Template
&& type != nsIMsgCompType::EditAsNew)
{
bool requestReturnReceipt = false;
rv = m_identity->GetRequestReturnReceipt(&requestReturnReceipt);
@ -4766,6 +4767,7 @@ nsMsgCompose::BuildBodyMessageAndSignature()
case nsIMsgCompType::Draft :
case nsIMsgCompType::Template :
case nsIMsgCompType::Redirect :
case nsIMsgCompType::EditAsNew :
addSignature = false;
break;

View file

@ -387,14 +387,22 @@ nsMsgComposeService::OpenComposeWindow(const char *msgComposeWindowURL, nsIMsgDB
/* Actually, the only way to implement forward inline is to simulate a template message.
Maybe one day when we will have more time we can change that
*/
if (type == nsIMsgCompType::ForwardInline || type == nsIMsgCompType::Draft || type == nsIMsgCompType::Template
|| type == nsIMsgCompType::ReplyWithTemplate || type == nsIMsgCompType::Redirect)
if (type == nsIMsgCompType::ForwardInline || type == nsIMsgCompType::Draft ||
type == nsIMsgCompType::Template ||
type == nsIMsgCompType::ReplyWithTemplate ||
type == nsIMsgCompType::Redirect ||
type == nsIMsgCompType::EditAsNew)
{
nsAutoCString uriToOpen(originalMsgURI);
uriToOpen += (uriToOpen.FindChar('?') == kNotFound) ? '?' : '&';
uriToOpen.Append("fetchCompleteMessage=true");
// The compose type that gets transmitted to a compose window open in mime
// is communicated using url query parameters here.
if (type == nsIMsgCompType::Redirect)
uriToOpen.Append("&redirect=true");
else if (type == nsIMsgCompType::EditAsNew)
uriToOpen.Append("&editasnew=true");
return LoadDraftOrTemplate(uriToOpen, type == nsIMsgCompType::ForwardInline || type == nsIMsgCompType::Draft ?
nsMimeOutput::nsMimeMessageDraftOrTemplate : nsMimeOutput::nsMimeMessageEditorTemplate,