I have checked in an experimental patch for deleting a track
*segment*. It is implemented in just 4 lines or so, and it makes it so
that when deleting a "track segment" there is a clean drawing of the
screen afterwards. The prior technique, a 1980's technique of XORing
of the screen might have made sense when computers were not as fast.
Now I'd like to know if this improves deleting segments (only segments,
not entire tracks) and does not lead to intolerable delays redrawing the
screen.
If this is ok, then we should look for a volunteer to go through all the
track deleting code and possibly module delete code and propagate this
idea elsewhere. The idea is this, instead of XORing the old item being
erased from the screen, you simply redraw the entire screen.
I think this is a good project for a new developer to jump in and get
immediate impact into the project. So I would be looking for a
volunteer to do this, provided there is near unanimous agreement that
this change in strategy is a good thing. Note that the strategy I am
talking about does not include "dragging" objects on screen. In the
dragging cases, the XOR technique will probably remain best. However
at end of drag, the entire screen should probably be redrawn.
See the lines at or near line 122 in file pcbnew/deltrack.cpp as the
sample. So to summarize:
1) Test this patch, make sure it is fast enough, cast your vote then.
2) Look for other areas to implement the idea (with modified code as
appropriate): delete entire track, delete entire net, delete module,
etc. No dragging.
3) Get a volunteer to do 2)
Thanks,
Dick