void wxCaret::InitGeneric()
{
m_hasFocus = TRUE;
- m_blinkedOut = FALSE;
+ m_blinkedOut = TRUE;
m_xOld =
m_yOld = -1;
if ( blinkTime )
m_timer.Start(blinkTime);
- m_blinkedOut = TRUE;
- Blink();
+ if ( m_blinkedOut )
+ Blink();
}
void wxCaret::DoHide()
{
m_hasFocus = TRUE;
- Refresh();
+ if ( IsVisible() )
+ Refresh();
}
void wxCaret::OnKillFocus()
if ( m_xOld == -1 && m_yOld == -1 )
{
// save the part we're going to overdraw
+
+ int x = m_x,
+ y = m_y;
+#if defined(__WXGTK__) && !defined(__WX_DC_BLIT_FIXED__)
+ wxPoint pt = dcWin.GetDeviceOrigin();
+ x += pt.x;
+ y += pt.y;
+#endif // broken wxGTK wxDC::Blit
dcMem.Blit(0, 0, m_width, m_height,
- &dcWin, m_x, m_y);
+ &dcWin, x, y);
+
m_xOld = m_x;
m_yOld = m_y;
}