One of KiCad's most powerful, but also subtle (and potentially frustrating if you don't notice) features is it's grid and movement system.
When you move a part, which part of it is under the cursor and which thing you select is important. There are multiple possible anchors for any given footprint, and the one you move or place it by will always be aligned to the grid, so be sure to chose which anchor point you move it by wisely.
If you select the center of a footprint, then the center will be moved on the grid, and aligned to the grid. If your grid is 1.27mm, but your part is an 8 pin SOIC, then moving the footprint by the center crosshair (the transparent 'ghost' of the footprint will be locked under the cursor to indicate by which anchor you're moving it by), then because the center of a SOIC falls half way between the two inner pins, all pins will be 0.635mm off the main grid, but the center of the footprint will be properly aligned to the grid. As it should be.
If you want the center of the footprint to be off-alignment, but the pads to be aligned to the grid, simply select any one of the pads, or have your cursor over one of the pads when you hit M for move. The cursor will lock to that pad's center, and now THAT is the anchor point you're using. When you place it, the footprint will now be aligned to that anchor point, which in this case will put all the SOIC's pins in alignment with the 1.27mm grid, at the expense of the center of the footprint being off-alignment. Also as it should be.
You naturally can't do both with a grid size that coarse, though setting your grid to 0.635mm would also solve this. Though, sometimes there are times we want a coarse grid, and that's what makes KiCad's movement system so versatile!
Note: This anchor point selection system is universal. If you are doing rotation, especially finer grained rotation (45 degrees or 30 degrees for example, instead of 90), you'll notice that the axis of rotation is also always the anchor. So you can rotate a part around one of it's pins, or it's center.
It's also universal in the sense that it applies to one footprint or many footprints. If you select a block, any anchor point on any of the selected parts in a block can be used as the movement anchor, and entire groups of parts can likewise be rotated about an anchor as the axis.
Best Answer
If you are using KiCad v5.1.x, you can hold down the Alt key while clicking to get the disambiguation menu for everything under your cursor.
Here is an example of performing this action in pcbnew. Note that when clicking without the
Alt
key held down, we get just the pad as it is considered the "most likely" target if you are directly over it. But withAlt
key depressed while clicking, we get all items directly under the mouse cursor.