Inserting text now retains style at current position
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43730
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxTextAttrEx paraAttr;
if (flags & wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE)
{
wxTextAttrEx paraAttr;
if (flags & wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE)
{
- paraAttr = GetStyleForNewParagraph(pos);
+ // Get appropriate paragraph style
+ paraAttr = GetStyleForNewParagraph(pos, false, false);
if (!paraAttr.IsDefault())
p = & paraAttr;
}
if (!paraAttr.IsDefault())
p = & paraAttr;
}
wxTextAttrEx paraAttr;
if (flags & wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE)
{
wxTextAttrEx paraAttr;
if (flags & wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE)
{
- paraAttr = GetStyleForNewParagraph(pos);
+ paraAttr = GetStyleForNewParagraph(pos, false, true /* look for next paragraph style */);
if (!paraAttr.IsDefault())
p = & paraAttr;
}
if (!paraAttr.IsDefault())
p = & paraAttr;
}
/// Get the style that is appropriate for a new paragraph at this position.
/// If the previous paragraph has a paragraph style name, look up the next-paragraph
/// style.
/// Get the style that is appropriate for a new paragraph at this position.
/// If the previous paragraph has a paragraph style name, look up the next-paragraph
/// style.
-wxRichTextAttr wxRichTextBuffer::GetStyleForNewParagraph(long pos, bool caretPosition) const
+wxRichTextAttr wxRichTextBuffer::GetStyleForNewParagraph(long pos, bool caretPosition, bool lookUpNewParaStyle) const
{
wxRichTextParagraph* para = GetParagraphAtPosition(pos, caretPosition);
if (para)
{
wxRichTextParagraph* para = GetParagraphAtPosition(pos, caretPosition);
if (para)
bool foundAttributes = false;
// Look for a matching paragraph style
bool foundAttributes = false;
// Look for a matching paragraph style
- if (!para->GetAttributes().GetParagraphStyleName().IsEmpty() && GetStyleSheet())
+ if (lookUpNewParaStyle && !para->GetAttributes().GetParagraphStyleName().IsEmpty() && GetStyleSheet())
{
wxRichTextParagraphStyleDefinition* paraDef = GetStyleSheet()->FindParagraphStyle(para->GetAttributes().GetParagraphStyleName());
if (paraDef)
{
wxRichTextParagraphStyleDefinition* paraDef = GetStyleSheet()->FindParagraphStyle(para->GetAttributes().GetParagraphStyleName());
if (paraDef)
if (m_newParagraphs.GetPartialParagraph())
newCaretPosition --;
else
if (m_newParagraphs.GetPartialParagraph())
newCaretPosition --;
else
- if (m_newParagraphs.GetChildren().GetCount() > 0)
+ if (m_newParagraphs.GetChildren().GetCount() > 1)
{
wxRichTextObject* p = (wxRichTextObject*) m_newParagraphs.GetChildren().GetLast()->GetData();
if (p->GetRange().GetLength() == 1)
{
wxRichTextObject* p = (wxRichTextObject*) m_newParagraphs.GetChildren().GetLast()->GetData();
if (p->GetRange().GetLength() == 1)