void wxRichTextCtrl::SelectNone()
{
if (!(GetSelectionRange() == wxRichTextRange(-2, -2)))
- SetSelection(-2, -2);
+ {
+ Refresh(false);
+ m_selectionRange = wxRichTextRange(-2, -2);
+ }
m_selectionAnchor = -2;
}
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();
+ }
}
// ----------------------------------------------------------------------------