Seth Hillbrand 42928c8b2f Fix Move command grabbing from grid point instead of anchor
The Move command grabbed footprints from the nearest grid point rather
than the footprint anchor. This was caused by the reference point being
grid-aligned at drag start (commit 89be3fd390), which was a workaround
for fractional-nanometer positioning errors with non-page display origin.

Fix the root cause instead: AlignGrid(VECTOR2I, VECTOR2D, VECTOR2D)
relied on implicit VECTOR2D->VECTOR2I truncation to pass grid parameters
to computeNearest. For grid sizes that aren't exact in IEEE 754 double
(e.g., 0.254mm = 10 mil becomes 253999.999... instead of 254000), the
truncation produces incorrect grid sizes. Use KiROUND for the conversion
so all grid operations produce exact grid multiples.

With AlignGrid returning correct positions, the move tool no longer needs
to grid-align its reference point. Restore the anchor-based grab and the
GetMoveWarpsCursor() preference that 89be3fd390 removed.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/23308
2026-03-10 11:07:39 -07:00
2023-05-12 16:10:18 +03:00
2023-10-18 09:40:34 -07:00
2026-02-28 18:53:36 +00:00
2026-02-24 22:57:27 -08:00
2026-03-10 09:18:55 -04:00
2026-02-02 20:33:08 -05:00
2023-09-19 17:23:30 -04:00
2021-12-01 00:47:22 +01:00
2024-01-16 16:03:43 -05:00
2025-12-04 09:05:04 -08:00
2020-03-26 11:10:34 -05:00
2022-10-12 20:56:21 +02:00
2023-03-05 21:07:57 -05:00
2022-06-09 18:30:51 +00:00
2019-02-11 08:35:23 -08:00
2022-10-18 06:16:50 +02:00
2019-02-11 08:35:23 -08:00
2019-06-09 08:43:43 -07:00
2023-02-23 23:40:28 +00:00

KiCad README

For specific documentation about building KiCad, policies and guidelines, and source code documentation see the Developer Documentation website.

You may also take a look into the Wiki, the contribution guide.

For general information about KiCad and information about contributing to the documentation and libraries, see our Website and our Forum.

Build state

KiCad uses a host of CI resources.

GitLab CI pipeline status can be viewed for Linux and Windows builds of the latest commits.

Release status

latest released version(s) Release status

Files

  • AUTHORS.txt - The authors, contributors, document writers and translators list
  • CMakeLists.txt - Main CMAKE build tool script
  • copyright.h - A very short copy of the GNU General Public License to be included in new source files
  • Doxyfile - Doxygen config file for KiCad
  • INSTALL.txt - The release (binary) installation instructions
  • uncrustify.cfg - Uncrustify config file for uncrustify sources formatting tool
  • _clang-format - clang config file for clang-format sources formatting tool

Subdirectories

  • 3d-viewer - Sourcecode of the 3D viewer
  • bitmap2component - Sourcecode of the bitmap to PCB artwork converter
  • cmake - Modules for the CMAKE build tool
  • common - Sourcecode of the common library
  • cvpcb - Sourcecode of the CvPCB tool
  • demos - Some demo examples
  • doxygen - Configuration for generating pretty doxygen manual of the codebase
  • eeschema - Sourcecode of the schematic editor
  • gerbview - Sourcecode of the gerber viewer
  • include - Interfaces to the common library
  • kicad - Sourcecode of the project manager
  • libs - Sourcecode of KiCad utilities (geometry and others)
  • pagelayout_editor - Sourcecode of the pagelayout editor
  • patches - Collection of patches for external dependencies
  • pcbnew - Sourcecode of the printed circuit board editor
  • plugins - Sourcecode for the 3D viewer plugins
  • qa - Unit testing framework for KiCad
  • resources - Packaging resources such as bitmaps and operating system specific files
  • scripting - Python integration for KiCad
  • thirdparty - Sourcecode of external libraries used in KiCad but not written by the KiCad team
  • tools - Helpers for developing, testing and building
  • translation - Translation data files (managed through Weblate for most languages)
  • utils - Small utils for KiCad, e.g. IDF, STEP, and OGL tools and converters
S
Description
This is an active mirror of the KiCad development branch, which is hosted at GitLab (updated every time something is pushed). Pull requests on GitHub are not accepted or watched.
Readme GPL-3.0 3.6 GiB
Languages
C++ 51%
C 26.1%
ALGOL 20.1%
AGS Script 1.3%
CMake 0.6%
Other 0.6%