Cairo Polyline and Polygon draw functions share a common routine. While
Polygons must have 3 points to allow triangulation, a polyline (like our
text) need only have 2
This resolves a crash when passing an empty polygon and alerts debug
users to possible generation cases when bad polygons are created.
Thanks for Frans Zellman
(https://gitlab.com/kicad/code/kicad/-/merge_requests/365) for
identifying the issue.
CHANGED: If a rectangle is drawn and the location of the second corner
is the same as another rectangle's second corner, Pcbnew crashes. The
reason is that a call is made to DRAWSEGMENT::GetLength(), but that
function only handles shapes of type S_CURVE and S_SEGMENT. This code
checks if the overlapping end points are from a rectangle and if so
it doesn't call DRAWSEGMENT::GetLength().
Fixes https://gitlab.com/kicad/code/kicad/issues/5282
This freeze/thaw is different than the update locker freeze/thaw,
and is needed to prevent crashes due to accessing invalid (already
freed) data on GTK.
Fixes https://gitlab.com/kicad/code/kicad/issues/5289
CHANGED: When the output path is set in the plotter dialog, the user is
asked if they want to make the path relative to the project. The old
code would ask the user if they wanted to do this, and then if it
failed would present an error dialog. The new code tries it first on
a copy, and only if it works does the user get asked if they want
to do it.
Related to issue https://gitlab.com/kicad/code/kicad/issues/5263 except
that is for Pcbnew, and this fixes the same problem in Eeschema. Issue
5263 is fixed with Merge Request:
https://gitlab.com/kicad/code/kicad/-/merge_requests/370
CHANGED: When the output path is set in the plotter dialog, the user is
asked if they want to make the path relative to the project. The old
code would ask the user if they wanted to do this, and then if it
failed would present an error dialog. The new code tries it first on
a copy, and only if it works does the user get asked if they want
to do it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5263
This may affect other EDA_DRAW_FRAME objects as well but it doesn't seem
to be as noticeable in the symbol, footprint, and worksheet editors.
Fixes https://gitlab.com/kicad/code/kicad/issues/5248
When running the cleanup routine, we should check that we haven't
changed our lines during the process. If we have, we run again to pick
up the new merges
Fixes https://gitlab.com/kicad/code/kicad/issues/5265
ADDED: Allow DXF/SVG graphics to be imported as a group
Also, cleanup the placement routine to allow the edit tool's flip
and rotate routines to be used when placing the items.