The itemlist and zonelist in connectivity can both contain many items,
so both use the same OpenMP routine. However, we can only clear the
dirty flag when we conduct a full search, including zones. Otherwise we
missing connections to zones when propogating changed items that are
then marked as not dirty.
Fixes: lp:1777993
* https://bugs.launchpad.net/kicad/+bug/1777993
When setting the maximum represented box, std::numerical_limits::min
returns the most negative number only for integers. For floating point,
it returns the smallest positive number. std::numerical_limits::lowest
is the same as min for integers but returns the most negative number for
floating point as well.
The origin item doesn't have a fixed size. It is constant on the screen but
changes the effective BBox size based on the zoom level.
But we can't simply set it to the maximum size as this causes a splitting degeneracy
when compiling for Debian i386. By modestly adjusting the bbox, we avoid the degeneracy
while keeping the origin visible at all zoom levels
Fixes: lp:1777379
* https://bugs.launchpad.net/kicad/+bug/1777379
During the symbol library table implementation, the legal character
tests for the footprint library table were changed and the forward
slash '/' character became illegal. This change broke editing some
users footprint library tables that already had '/' in library table
nicknames. This change split the library nickname and library item
name illegal character tests.
The local ratsnest needs to be able to hide as well as show visibility.
Clicking a module will toggle the visibility while clicking off all
modules clears the local ratsnest display.
Fixes: lp:1531332
* https://bugs.launchpad.net/kicad/+bug/1531332
Options that do not have code implementing them are now hidden from the
user so that they are not searching for ways to enable the greyed out
options. Similarly, when selecting a routing option that disables
free-mode, we show the effect of disabling the mode in the dialog.
It happens only when the 'warp and center cursor on zoom' option is disabled.
Was created after modifying the code in EDA_DRAW_FRAME::AdjustScrollBars(),
making EDA_DRAW_FRAME::RedrawScreen2() not working very well.
(partial fix of bug 1562173)
GAL is strict regarding which layers are rendered, therefore to show
ratsnest lines when an item is dragged - the ratsnest layer must be kept
enabled. Ratsnest line visibility is enabled per item and this is the
way to show/hide the lines.
Fixes: lp:1666473
* https://bugs.launchpad.net/kicad/+bug/1666473
STEP exporter keeps outline contiguous by storing the last point
coordinates and using them as the starting point for the next segment. It
might create a problem for arcs, as one of the arc end points may become
translated (changed to the last outline point), while the remaining
points (center and the other endpoint) are kept original. For large
deltas it renders an arc invalid, as it cannot pass through a modified
endpoint anymore.
To fix this, short segments are added to link the last outline point
with an arc endpoint, but only if the distance between the two is below
a certain threshold. This way the outline is kept contiguous and the arc
end point is unmodified, warranting its correctness.
Fixes: lp:1774351
* https://bugs.launchpad.net/kicad/+bug/1774351
Minimum differential pair clearance should be limited to the netclass
differential pair spacing. This also cleans up some unused code that
was left over from previous work on differential pair clearances.
Fixes: lp:1673632
* https://bugs.launchpad.net/kicad/+bug/1673632
In case there are zero width oval holes on the PCB,
it is safer to not plot them at all, rather than plotting
with width arbitrarily increased to 10 mils.
This also makes Gerber outputs consistent with Excellon outputs.
When removing items, we perform a two-pass removal, checking first
for the cached rectangle collision. Then, if we do not find the item
being removed, we perform a second, more expensive pass over the full
tree. This second pass is required as we cannot be certain that an
item's bbox has not been modified between insertion and deletion. In
which case, keeping stale pointers in the tree will lead to segfaults.
Fixes: lp:1777246
* https://bugs.launchpad.net/kicad/+bug/1777246
The dialog was displayed due to a global TOOL_ACTION and a hotkey
assigned to a top menubar entry. Removing the hotkey from the menubar entry
is not ideal, but less irritating than a dialog showing up twice.
The assert in the title line verifies that an item does not belong to
any DLIST when it is being added to one. Items in clipboard are already
owned by DLISTs, therefore they need to be removed from the original
DLISTs before being added to new ones.
Commit 72b49acc changed behavior of MODULE::ViewBBox(),
which now includes text fields area. This caused problems
with selecting footprints with relatively large text fields.
This patch fixes this problem by using MODULE::GetBoundingBox instead.
Fixes: lp:1776942
* https://bugs.launchpad.net/kicad/+bug/1776942
glFinish is meant to ensure every aspect of the screen is fully-drawn
before continuing. This causes issues with certain chipsets (Intel
4-8k)
glFlush is more of a suggestion that CPU work is complete and the GPU
should complete its work in a "timely" fashion.
We add an additional glFinish call before getting a screenshot as this
will copy the actual data from the card buffer.
Fixes: lp:1775976
* https://bugs.launchpad.net/kicad/+bug/1775976
After an action is completed that required the screen to pan when the
cursor reaches the edge of the screen, we should release the cursor to
allow the user to move their mouse without panning.
Fixes: lp:1763860
* https://bugs.launchpad.net/kicad/+bug/1763860