From: Julian Smart Date: Fri, 9 May 2008 08:47:08 +0000 (+0000) Subject: Apply previous paragraph style if pasting plain text, but not if pasting rich text. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/71d8e824aa69b35cd9a0f1379999c89095bf9ea0?ds=inline Apply previous paragraph style if pasting plain text, but not if pasting rich text. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index 92e0577424..b171a3b461 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -5224,6 +5224,15 @@ bool wxRichTextBuffer::InsertParagraphsWithUndo(long pos, const wxRichTextParagr action->GetNewParagraphs() = paragraphs; + if (p && !p->IsDefault()) + { + for (wxRichTextObjectList::compatibility_iterator node = action->GetNewParagraphs().GetChildren().GetFirst(); node; node = node->GetNext()) + { + wxRichTextObject* child = node->GetData(); + child->SetAttributes(*p); + } + } + action->SetPosition(pos); wxRichTextRange range = wxRichTextRange(pos, pos + paragraphs.GetRange().GetEnd() - 1); @@ -6086,7 +6095,7 @@ bool wxRichTextBuffer::PasteFromClipboard(long position) wxRichTextBuffer* richTextBuffer = data.GetRichTextBuffer(); if (richTextBuffer) { - InsertParagraphsWithUndo(position+1, *richTextBuffer, GetRichTextCtrl(), wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE); + InsertParagraphsWithUndo(position+1, *richTextBuffer, GetRichTextCtrl(), 0); if (GetRichTextCtrl()) GetRichTextCtrl()->ShowPosition(position + richTextBuffer->GetRange().GetEnd()); delete richTextBuffer; @@ -6110,7 +6119,7 @@ bool wxRichTextBuffer::PasteFromClipboard(long position) #else wxString text2 = text; #endif - InsertTextWithUndo(position+1, text2, GetRichTextCtrl()); + InsertTextWithUndo(position+1, text2, GetRichTextCtrl(), wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE); if (GetRichTextCtrl()) GetRichTextCtrl()->ShowPosition(position + text2.Length());