We have discuss this issue in another issue(debug assert from wxWidgets when I drag a mpBitmapLayer), but let me create a new one here, because that one is for the bitmap issue.
When debugging, I found that when UpdateAll() function get called, the cross line is cleared.
Because there is a function call:
void mpWindow::UpdateAll()
{
if (UpdateBBox())
{
......
}
if (m_magnetize)
m_magnet.ClearPlot(*this);
Refresh(false);
}
In the void mpWindow::OnPaint(wxPaintEvent &WXUNUSED(event)), we don't re-create this cross line.
I relieve that if cross line is enabled, when we call UpdateAll(), it got cleared. But we have to mark is as "temporarily cleared", because in the OnPaint event, we will draw the whole window, but after that, do we need to "re-create" it?