I think we can try to make the UUIDs stable across save/load cycles. We have do that for items on the main board, so I don't see a problem with extending that to the actual libraries.
Ian McInerney (783480d2) at 08 Mar 23:25
Always force toolbars to be visible when restoring settings
This was fixed upstream in https://github.com/wxWidgets/wxWidgets/pull/26243, which is contained in the most recent releases (3.3.2 and 3.2.10).
Current behavior: KiCAD 3d viewer does not show footprints marked as Do Not Populate. There is an option to enable these footprints to be shown but nothing happens. See screenshot below:
Expected behavior: footprints marked DNP should be displayed when the "Models marked DNP" is enabled.
Steps to reproduce:
Application: KiCad 3D Viewer x64 on x64
Version: 10.0.0-rc1.1-600-gf07f1083ac, release build
Libraries:
wxWidgets 3.3.2
FreeType 2.13.3
HarfBuzz 12.3.0
FontConfig 2.17.1
Platform: Windows 11 (build 26200), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: ATI Technologies Inc., AMD Radeon HD 7700 Series, 4.6.14830 Compatibility Profile Context 22.6.1 27.20.20913.2000
wxWidgets: 3.3.2 (wchar_t,STL containers)
Boost: 1.90.0
OCC: 7.9.2
Curl: 8.18.0
ngspice: 45.2
Compiler: Visual C++ 1944 without C++ ABI
KICAD_IPC_API=ON
KICAD_USE_PCH=OFF
Locale:
Lang: en_CA
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)
Ian McInerney (40205eb1) at 03 Mar 18:54
Remove extra DNP condition in FP rendering path
Ian McInerney (394d466a) at 02 Mar 19:30
Guard null m_appearancePanel in colour-changed handler
The PCB Editor hard crashes with EXC_BAD_ACCESS on macOS when opening a board on a system with multiple displays (e.g. MacBook with an external monitor and lid with internal monitor opened). The crash occurs during PCB_EDIT_FRAME construction before the editor UI appears.
This is a race condition entangled with macOS API and wx event routing, see explanation below. Reproduction may depend on some things like project window placement and monitor at which it opened up initially, so it may not be 10/10 cases depending on specific setup. Still, I encountered this during normal usage as a highly annoying thing, so I think just trying out without special care should reproduce this crash within a few tries for everyone.
Close the MacBook lid and use only the external monitor or disconnect external monitors.
wxEVT_SYS_COLOUR_CHANGED is bound to onDarkModeToggle in the PCB_BASE_EDIT_FRAME constructor, but m_appearancePanel is not created until later in PCB_EDIT_FRAME construction. During LoadSettings(), LoadWindowState calls DoSetSize, which on macOS triggers a synchronous windowDidChangeBackingProperties notification when the window spans multiple displays. wxWidgets translates this into wxEVT_SYS_COLOUR_CHANGED, and the handler dereferences m_appearancePanel while it is still null.
Process 44843 launched: '/path/to/local/debug/kicad' (arm64)
2026-03-02 10:09:30.949934+0100 kicad[44843:1556781] [StateRestoration] -[NSApplication(NSWindowRestoration) restoreWindowWithIdentifier:state:completionHandler:] Unable to find className=(null)
[unrelated events ...]
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x340)
frame #0: _pcbnew.kiface`APPEARANCE_CONTROLS::OnDarkModeToggle(this=0x0000000000000000) at appearance_controls.cpp:1205:26
Application: KiCad arm64 on arm64
Version: 10.0.0-rc1.1-602-g2c63082a3d, release build
Libraries:
wxWidgets 3.2.8
FreeType 2.14.1
HarfBuzz 12.3.2
FontConfig 2.17.1
libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.68.0
Platform: macOS Version 26.3 (Build 25D125), 64 bit, Little endian, wxMac
Build Info:
Date: Mar 2 2026 09:32:41
wxWidgets: 3.2.8 (wchar_t,wx containers)
Boost: 1.90.0
OCC: 7.9.3
Curl: 8.7.1
ngspice: 45.2
Compiler: Clang 17.0.0 with C++ ABI 1002
KICAD_IPC_API=ON
KICAD_USE_PCH=OFF
Ian McInerney (a592b9db) at 02 Mar 19:22
Guard null m_appearancePanel in colour-changed handler
Fixes a crash during PCB_EDIT_FRAME construction on macOS with multiple displays.
wxEVT_SYS_COLOUR_CHANGED can fire before m_appearancePanel is created — on macOS, LoadWindowState triggers a synchronous windowDidChangeBackingProperties notification when the window spans displays, which wxWidgets translates into a colour-changed event. The handler dereferences m_appearancePanel unconditionally, causing EXC_BAD_ACCESS.
Adds a null check consistent with all other m_appearancePanel accesses in the same file.
Fixes #23302
Ian McInerney (53f71d10) at 02 Mar 19:21
Guard null m_appearancePanel in colour-changed handler
... and 10 more commits
Interestingly this has already been fixed in the 9.0 branch which would suggest someone forgot to cherry pick this up to master.
Are you sure about this? Looking at the 9.0 branch, the dark mode toggle event handler has an unguarded call into the appearance panel also, so I think this could be an issue there still.
Thank you for proposing this. Since you are fixing an open issue, please follow the commit message policy (https://dev-docs.kicad.org/en/rules-guidelines/commit/index.html#_linking_a_commit_to_an_issue) and include the line linking to the issue being fixed.
Turns out this was probably lurking around for about 3 years, but no one had reported it. I guess that button doesn't get used much.
Ian McInerney (bec0c838) at 02 Mar 01:51
Don't gate toolbar tool action processing by ID anymore
The paste button on the top menù in the schematics editor do nothing. If I do Ctrl+C and Ctrl+V I can copy and paste a component, even if I do Ctrl+C and paste form Edit->Paste but it do nothing when I press the button on the top menù.
Application: KiCad Schematic Editor x64 on x64
Version: 9.0.6, release build
Libraries:
wxWidgets 3.2.8
FreeType 2.13.3
HarfBuzz 10.2.0
FontConfig 2.15.0
libcurl/8.13.0-DEV Schannel zlib/1.3.1
Platform: Windows 11 (build 26200), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) Arc(TM) Pro Graphics, 4.6.0 - Build 32.0.101.6637
Build Info:
Date: Oct 30 2025 19:36:12
wxWidgets: 3.2.8 (wchar_t,wx containers)
Boost: 1.88.0
OCC: 7.9.1
Curl: 8.13.0-DEV
ngspice: 45.2
Compiler: Visual C++ 1944 without C++ ABI
KICAD_IPC_API=ON
Locale:
Lang: en_GB
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)
Ian McInerney (96d5de48) at 02 Mar 01:51
Don't gate toolbar tool action processing by ID anymore
Just did.