A change in commit 5731000135 caused kicad to stop allowing users
to move items like footprints, arcs and lines using anchors other
than the center point.
This was caused by the new code that stores reference points for
clipboard pasting, a call to updateModificationPoint() prevented
some old code paths from executing, which caused the selection to
snap into the cursor, always using the center anchor.
This fix moves the call within the if-cases that need it, and adds
a ClearReferencePoint call when the selection is "dropped" to allow
the user to grab the same selection again from a different anchor.
Fixes: lp:1722512
* https://bugs.launchpad.net/kicad/+bug/1722512
Dragging a full line that is connected to a component
now drags the component as part of the block, maintaining
connections.
Fixes: lp:1167714
* https://bugs.launchpad.net/kicad/+bug/1167714
The NormalizePath() function always added a trailing separator when
normalizing environment variables. Now it checks an environment
variable for a trailing separator and only adds one if it doesn't
already exist.
May be a partial fix for:
Fixes lp:1733217
https://bugs.launchpad.net/kicad/+bug/1733217
NEW: Component Tree widget in the Symbol Library Editor
NEW: Multiple contexts enable switching between modified components
NEW: Cut/Copy/Paste to transfer components between libraries
NEW: Cut/Copy/Paste for symbol graphical items
CHANGE: Redone menu and toolbar in the Symbol Library Editor
CHANGE: Modified a few icosn to make the user interface look more
coherent (new icons: import/export part, new library, add library;
modified: save part)
Removed cut & copy toolbar icons in the schematic editor, as they
were inaccessible. One cannot have an item selected and move the
mouse outside the canvas area due to autopanning.
Added paste icon to the library editor.
Raise() invokes SetFocus() on Windows OS, leading to an API error
(check wxWindowMSW::SetFocus() in wxWidgets/src/msw/window.cpp as
of wxWidgets 3.0.2). In certain cases it leads to a crash.
Tree nodes now have an additional field 'InTree' to determine
if the view is aware of its existence. This way, there is no need
to rebuild the data structures from scratch when they need to be
filtered.
Library Editor updates its working copy of the edited part every time
it is modified. If LIB_EDIT_FRAME::PlacePin() calls OnModify() too early,
the working copy does not include the last change.