kicad/pcbnew/tools
Seth Hillbrand bd57957df7 Revise method of selecting footprints in contrast
When working in high contrast mode, we want to be able to select a
footprint with only elements in, e.g. silk and fab layers.

The previous design for footprint IsOnLayer had one behavior of every
other element and a different behavior for footprints.  This leads to
multiple bugs as new features use the overloaded IsOnLayer expecting it
to report if the element exists on a layer or not.

For footprints, we need a different routine to determine whether or not
to select the footprint when clicking on it.  IsOnLayer will report if
the footprint has any elements on a specific layer but we don't want to
use the bbox for a hittest because large footprints with through hole
pads will exist on every layer and have an enormous bbox.  Instead, we
filter footprints based on the hittest of each element.  This behaves in
a more logical fashion, allowing you to select a footprint by clicking
on a visible element of that footprint.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284

(cherry picked from commit f3d65b5156)
2023-09-29 12:09:11 -07:00
..
board_editor_control.cpp Update dimension units when opening PCBs in CLI. 2023-03-14 11:56:33 +00:00
board_editor_control.h ADDED: Search/inspect pane 2022-09-14 02:59:57 +00:00
board_inspection_tool.cpp Manual cherry-pick of a214ac0310. 2023-03-26 21:06:24 +01:00
board_inspection_tool.h Untangle some includes 2022-09-25 11:37:06 -04:00
board_reannotate_tool.cpp Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
board_reannotate_tool.h Array creator tool: Add option to assign unique reference designators 2021-10-25 22:38:49 +01:00
convert_tool.cpp Don't Simplify() polys with arcs in them. 2022-12-12 12:54:34 +00:00
convert_tool.h A bit of cleanup to recent convert tool changes. 2022-12-01 14:53:13 +00:00
drawing_stackup_table_tool.cpp drawing_stackup_table_tool: fix incorrect color of dielectric sublayers. 2022-12-02 10:41:20 +01:00
drawing_tool.cpp Minor cleanup and removal of stale comments. 2023-08-31 12:37:44 +01:00
drawing_tool.h Reset session drawing props after Board Setup. 2023-06-17 13:04:48 +01:00
drc_tool.cpp Re-create missing exclusion markers if DRC was cancelled. 2023-06-11 22:31:13 +01:00
drc_tool.h Re-create missing exclusion markers if DRC was cancelled. 2023-06-11 22:31:13 +01:00
edit_tool.cpp Don't allow duplication of footprint items outside of footprint editor. 2023-09-03 22:44:17 +01:00
edit_tool.h PCB Editor: make Mirror menu items conditional 2022-12-27 14:18:47 -05:00
edit_tool_move_fct.cpp Don't allow duplication of footprint items outside of footprint editor. 2023-09-03 22:44:17 +01:00
footprint_editor_control.cpp Footprint editor: always export the currently loaded footprint. 2023-03-29 20:30:25 +02:00
footprint_editor_control.h Allow selection of Footprint Checker markers. 2022-08-20 11:30:25 +01:00
global_edit_tool.cpp More wide-string declarations. 2022-02-05 22:26:31 +00:00
global_edit_tool.h
group_tool.cpp Don't add footprint components to PCB group 2023-01-05 15:38:07 -08:00
group_tool.h
pad_tool.cpp Fix merge errors. 2023-09-02 11:18:34 +01:00
pad_tool.h Implement undo/redo around Pad Edit Mode changes. 2023-09-02 11:18:34 +01:00
pcb_actions.cpp Revert string change. 2023-05-12 21:26:16 +03:00
pcb_actions.h Expose changing arc edit mode in arc button context menu and Preferences 2022-12-05 21:28:16 +03:00
pcb_control.cpp Clean up items which weren't pasted from clipboard. 2023-03-18 23:38:09 +00:00
pcb_control.h ADDED: Implement Drag and Drop 2022-09-14 22:28:09 +00:00
pcb_editor_conditions.cpp Remove bad static_cast. 2022-07-24 23:41:41 +01:00
pcb_editor_conditions.h Move 45° limit to hotkey 2021-09-05 13:42:51 -07:00
pcb_grid_helper.cpp Fix oval pad snapping 2023-09-10 00:49:03 +01:00
pcb_grid_helper.h Add forward declarations in pcb_grid_helper.h 2023-09-10 00:45:32 +01:00
pcb_picker_tool.cpp Don't allow zone filling during other editing operations. 2022-11-14 23:39:49 +00:00
pcb_picker_tool.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
pcb_point_editor.cpp Implement undo/redo around Pad Edit Mode changes. 2023-09-02 11:18:34 +01:00
pcb_point_editor.h pcbnew: Support dragging arc center in "Keep endpoints" mode. 2022-12-12 13:00:44 +03:00
pcb_selection.cpp Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
pcb_selection.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
pcb_selection_conditions.cpp PCB Editor: make locking menu items conditional 2022-12-21 10:34:54 -05:00
pcb_selection_conditions.h PCB Editor: make locking menu items conditional 2022-12-21 10:34:54 -05:00
pcb_selection_tool.cpp Revise method of selecting footprints in contrast 2023-09-29 12:09:11 -07:00
pcb_selection_tool.h Revise method of selecting footprints in contrast 2023-09-29 12:09:11 -07:00
pcb_tool_base.cpp Don't discard temporary item being placed if placement is rejected 2023-02-11 08:40:33 -05:00
pcb_tool_base.h TOOL_EVENT: make command string non-optional 2022-09-19 10:23:09 -04:00
pcb_viewer_tools.cpp Reduce compiler warnings. 2022-12-13 00:47:19 +00:00
pcb_viewer_tools.h Remove some more duplicated preferences. 2021-12-26 13:37:28 +00:00
placement_tool.cpp Correctly sort positions for default align 2022-10-14 16:15:06 -07:00
placement_tool.h Some more wxPoint/EDA_RECT yeeting. 2022-08-31 00:44:33 +01:00
position_relative_tool.cpp Don't keep value of user or grid anchors between invocations. 2022-11-17 00:51:52 +00:00
position_relative_tool.h Don't keep value of user or grid anchors between invocations. 2022-11-17 00:51:52 +00:00
properties_tool.cpp Move properties panel to widgets with the other AUI panels 2022-11-27 22:40:23 -05:00
properties_tool.h WIP: Properties GUI 2022-08-22 21:32:32 -04:00
tool_event_utils.cpp More wide-string declarations. 2022-02-05 22:26:31 +00:00
tool_event_utils.h Move EDA_ANGLE to KiMath lib 2022-01-14 17:12:24 -08:00
zone_create_helper.cpp Minor cleanup and removal of stale comments. 2023-08-31 12:37:44 +01:00
zone_create_helper.h Choose the first unused priority value for zones 2022-08-25 10:05:30 -07:00
zone_filler_tool.cpp Don't allow quit while zone filler is running. 2023-01-16 16:01:45 +00:00
zone_filler_tool.h Don't allow quit while zone filler is running. 2023-01-16 16:01:45 +00:00