FreeBSD uses libspnav, just like a Linux does, so all the
conditional code addressing the spnav APIs should be used
on FreeBSD, too.
Unfortunately, the logic was not consistent in all places:
sometimes we had "#ifdef", sometimes "#if defined" and
sometimes it was negated as "#ifndef". To make the intention
clearer across both Linux and FreeBSD, I unified all places
to a "#if defined(__linux__) || defined(__FreeBSD__)".
If we get another OS latching onto the same logic, we should
introduce a simple flag for this, but for only two OSes I
decided against adding central logic for this.
Break the most expensive header include chains that contaminate the
largest number of translation units
New lightweight headers for extractdded types:
font_metrics.h, mouse_drag_action.h, board_project_settings_params.h,
common_settings_internals.h, wx_infobar_message_type.h,
zone_layer_properties_grid.h
When XOR mode is enabled, the last visible layer must
use TARGET_NONCACHED instead of the configured target.
This ensures the layer participates in XOR compositing
before cached items are flushed at frame end.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22889
UpdateXORLayers() tracks the last visible layer and disables XOR diff
for it to prevent incorrect rendering onto the background. When layer
visibility was changed via SetVisibleLayers(), UpdateXORLayers() was
not called, causing the XOR state to become stale.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22889
Provides an update action to refresh the icon display when the user
changes the angle mode using a hotkey. Also unifies the angle modes
between schematic, pcb and library editors
* Manage the settings using the settings manager for better lifetimes
* Better architect the internals and JSON to make it easier to identify
the various tool types
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
On msys2 a link issue (3 undefined symbols) prevent Gerbview to be built.
So I added this option (KICAD_ENABLE_3DMOUSE_GERBVIEW, enabled by default)
to disable 3Dconnexion support on request.
When the option "always hide all layers but active" is set, the active layer
changed using hotkeys or Toolbar layer selector did not update the visible
selection.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18059
The diff mode (option in left toolbar) was never a differential display mode.
It is actually an option to force the alpha channel (opacity) of layer colors
to a given value.
So change the name and tool tips to force opacity mode, and make the opacity
parameter adjustable in preferences.
Gerbview: cleanup: remove a old and dead code.
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.