void wxRichTextCtrl::SelectNone()
{
if (!(GetSelectionRange() == wxRichTextRange(-2, -2)))
- SetSelection(-2, -2);
+ {
+ Refresh(false);
+ m_selectionRange = wxRichTextRange(-2, -2);
+ }
m_selectionAnchor = -2;
}
void wxRichTextCtrl::DoSetValue(const wxString& value, int flags)
{
- Clear();
+ // Don't call Clear here, since it always sends a text updated event
+ m_buffer.ResetAndClearCommands();
+ m_buffer.SetDirty(true);
+ m_caretPosition = -1;
+ m_caretPositionForDefaultStyle = -2;
+ m_caretAtLineStart = false;
+ m_selectionRange.SetRange(-2, -2);
+
+ Scroll(0,0);
+
+ if (!IsFrozen())
+ {
+ LayoutContent();
+ Refresh(false);
+ }
if (!value.IsEmpty())
{
// Remove empty paragraph
GetBuffer().Clear();
- DoWriteText(value);
+ DoWriteText(value, flags);
// for compatibility, don't move the cursor when doing SetValue()
SetInsertionPoint(0);
void wxRichTextCtrl::DoSetSelection(long from, long to, bool WXUNUSED(scrollCaret))
{
- m_selectionAnchor = from;
- m_selectionRange.SetRange(from, to-1);
- if (from > -2)
- m_caretPosition = from-1;
+ if (from == to)
+ {
+ SelectNone();
+ }
+ else
+ {
+ m_selectionAnchor = from;
+ m_selectionRange.SetRange(from, to-1);
+ if (from > -2)
+ m_caretPosition = from-1;
- Refresh(false);
- PositionCaret();
+ Refresh(false);
+ PositionCaret();
+ }
}
// ----------------------------------------------------------------------------
if (HasSelection())
return SetStyleEx(GetSelectionRange(), attr, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE|wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY);
else
- SetAndShowDefaultStyle(attr);
+ {
+ wxRichTextAttr current = GetDefaultStyleEx();
+ current.Apply(attr);
+ SetAndShowDefaultStyle(current);
+ }
return true;
}
if (HasSelection())
return SetStyleEx(GetSelectionRange(), attr, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE|wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY);
else
- SetAndShowDefaultStyle(attr);
+ {
+ wxRichTextAttr current = GetDefaultStyleEx();
+ current.Apply(attr);
+ SetAndShowDefaultStyle(current);
+ }
return true;
}
if (HasSelection())
return SetStyleEx(GetSelectionRange(), attr, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE|wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY);
else
- SetAndShowDefaultStyle(attr);
+ {
+ wxRichTextAttr current = GetDefaultStyleEx();
+ current.Apply(attr);
+ SetAndShowDefaultStyle(current);
+ }
return true;
}
return SetStyleEx(GetSelectionRange(), attr, flags);
else
{
- SetAndShowDefaultStyle(attr);
+ wxRichTextAttr current = GetDefaultStyleEx();
+ current.Apply(attr);
+ SetAndShowDefaultStyle(current);
return true;
}
}