Implement shove/walkaround for footprint dragging in PNS
Description
I have an example project here: drag_test.zip
It contains a single QFN package and a 20 pin header, with only a single trace between them. When I select the QFN and press 'g' to drag, the resulting trace position is almost always wrong (in the sense of causing a DRC error) unless I move the footprint exactly horizontal to its original position.
Steps to reproduce
Dragging in the X direction is fine:
Dragging even slightly in the Y axis fails as the shoved trace overlaps with the other pads:
KiCad Version
Application: KiCad
Version: (5.99.0-1272-g73ef0844c), debug build
Libraries:
wxWidgets 3.0.4
libcurl/7.64.1 SecureTransport (LibreSSL/2.8.3) zlib/1.2.11 nghttp2/1.39.2
Platform: macOS Catalina Version 10.15.4 (Build 19E266), 64 bit, Little endian, wxMac
Build Info:
Build date: Apr 11 2020 03:45:25
wxWidgets: 3.0.4 (wchar_t,STL containers,compatible with 2.8)
Boost: 1.72.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.54.0
Compiler: Clang 9.0.0 with C++ ABI 1002
Build settings:
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON
KICAD_STDLIB_DEBUG=OFF
KICAD_STDLIB_LIGHT_DEBUG=OFF
KICAD_SANITIZE=OFF
Edited by Jon Evans