Don't flash wxRTC caret if blink time is zero, and also take colour from window text colour to avoid invisibility.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2013-07-05 13:33:30 +00:00
parent 5ac5e40e41
commit eaaf10f671

View File

@@ -149,6 +149,8 @@ private:
wxRichTextCaretTimer m_timer; wxRichTextCaretTimer m_timer;
wxRichTextCtrl* m_richTextCtrl; wxRichTextCtrl* m_richTextCtrl;
bool m_refreshEnabled; bool m_refreshEnabled;
wxPen m_caretPen;
wxBrush m_caretBrush;
}; };
#endif #endif
@@ -4777,7 +4779,7 @@ void wxRichTextCaret::DoShow()
{ {
m_flashOn = true; m_flashOn = true;
if (!m_timer.IsRunning()) if (!m_timer.IsRunning() && GetBlinkTime() > 0)
m_timer.Start(GetBlinkTime()); m_timer.Start(GetBlinkTime());
Refresh(); Refresh();
@@ -4861,10 +4863,8 @@ void wxRichTextCaret::Refresh()
void wxRichTextCaret::DoDraw(wxDC *dc) void wxRichTextCaret::DoDraw(wxDC *dc)
{ {
dc->SetPen( *wxBLACK_PEN ); dc->SetBrush((m_hasFocus ? m_caretBrush : *wxTRANSPARENT_BRUSH));
dc->SetPen(m_caretPen);
dc->SetBrush(*(m_hasFocus ? wxBLACK_BRUSH : wxTRANSPARENT_BRUSH));
dc->SetPen(*wxBLACK_PEN);
wxPoint pt(m_x, m_y); wxPoint pt(m_x, m_y);