Crossing wires with pathological label in the center are actually
connected for the netlist. This is an ERC error but we should keep
things consistent.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21494
Data shown in widgets (texts, cCB state...) must be initialized in
TransferDataToWindow(), not inside Ctor, because now the base class DIALOG_SHIM
initialize a default value in its TransferDataToWindow() member, called after
the end of DIALOG_TRACK_VIA_PROPERTIES Ctor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21511
Footprints can now have a custom stackup. This means that they specify
an exact number of copper layers and the layers map 1:1 to board layers.
If the board doesn't contain that layer, the element just doesn't
show. We could make this a DRC check later on.
If there is no stackup, the behavior is the current default: a rule area
the In1 layer "expands" to all Inner layers.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10838
Always look for pre-existing undo/redo record. Checking for IsNew()
is less robust and should be avoided. Also moves the checking to a
location where it will be easier to ensure that it's uniform.
Push get-undo-level-item processing down a level so it is uniformly
called.
Make sure tables & labels are uniformly handled.
Remove incorrect usage of Get/SetGroupId() for storing lastPin
(which we don't use anyway).
Lists of deleted and changed items MUST include the screen pointer.
An item could be changed on one screen but not on another.
Also tightens handling of PCB_NETINFO_T items, which are not in the
view.
Also fixes a bug where there is no increment parameter if you assign
the base increment command to a hotkey.
(This was discovered while testing the above changes.)
Also fixes a bug where delete during a move in PCB Editor did an
undo instead of a delete.
(Again, found while testing above.)
An experiment was also run to collapse shared parts of SCH_EDIT_FRAME
and SYMBOL_EDITOR_FRAME into SCH_BASE_EDIT_FRAME. However, sharing the
undo code actually increased complexity, and there was very little else
of value in SCH_BASE_EDIT_FRAME (other than the Increment() routines).
The ibeam cursor gets stuck on MSW when mouse leaves the field.
(cherry picked from commit 47381f3d90)
Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
Now keeps track of branch points, recursing through them to find the
longest path it can in both directions. This helps to ignore
overlapping segments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7809