When setting previous values, we don't get the "OnFocus" event, so the
evaluation would not get triggered by simply repeating (using the
keyboard)
Fixes https://gitlab.com/kicad/code/kicad/issues/10752
(cherry picked from commit 4c81307391)
If we wanted to put it into the parent's undo item, then the *parent*
would need to not start a new undo record. Not starting one in the
zone filler tries to add it to the *previous* change, not to the parent
change.
Fixes https://gitlab.com/kicad/code/kicad/issues/10091
gcc doesn't need it and computes during compile regardless, but experimenting in godbolt, both clang and MSVC actually do need it or else it's partially computed at runtime
We now provide arc end points and interior angle, so we cannot check for
null radius in the same fashion. Instead, the starpoint==endpoint
indicates a zero radius
Fixes https://gitlab.com/kicad/code/kicad/issues/10714
(cherry picked from commit ef94f31204)
WxString does not allocate space for wide strings needed during
conversion unless the string is explicitly wide. This can cause buffer
over/underflow
Fixes https://gitlab.com/kicad/code/kicad/issues/10605
(cherry picked from commit 7601a3385f)
- Fix duplicate class names returned by GetClass().
- replace MTEXT name (in GetClass) by better name (FP_TEXT, FP_TEXTBOX...)
- Add missing Cast_to_PCB_TEXTBOX and Cast_to_FP_TEXTBOX
Pads generated outside of KiCad may have self-intersecting polygons that
simplify to multiple sets. We handle this by adding multiple primitives
for such polygons and limiting our fracture calls to only polygons that
have holes
Fixes https://gitlab.com/kicad/code/kicad/issues/10712
(cherry picked from commit 6d84acfacd)
When the data doesn't allow the pad to be drawn, we return false and
skip the redraw/update steps. This allows updating with invalid values
while typing
Fixes https://gitlab.com/kicad/code/kicad/issues/10684
All elements get effective shapes, many of which get triangulated. This
memory needs to be freed when destroying the tree
(cherry picked from commit c2707f3cc0)
We were checking for duplicate tracks by looking to see if the two
tracks had two shared points. A null track always matched this case,
which removed the valid track. We solve this by avoiding null tracks in
the duplicate checker. They are removed separately in the null track
stage.
This also fixes a GTK-specific tree issue where we require the
BeforeReset()/AfterReset() calls instead of Cleared() to prevent GTK
from dereferencing a parent after freeing
Fixes https://gitlab.com/kicad/code/kicad/issues/10624
(cherry picked from commit 8753051db6)