wxWidgets does not support Dark Mode on OSX Mojave

Bug #1804351 reported by Justace Clutter
This bug report is a duplicate of:  Bug #1797989: Issues on macOS 10.14 and dark mode. Edit Remove
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
New
Undecided
Unassigned

Bug Description

I am currently running OSX 10.14 in dark mode. When running in Dark Mode, many of the dialogs do not render correctly. Typically it is some form of white text on a light grey background which makes it hard to read. (A pain in the butt actually).

This can be replicated 100% by starting KiCad and opening any of the "Preferences" dialogues.

This has been discussed (along with an example image) in the user forums on the KiCad website at https://forum.kicad.info/t/macos-everything-is-white-text-on-light-gray-background/13668

A web search revealed that this is a bug in wxWindows and they are working to find a solution. A link to the relevant discussion is at https://trac.wxwidgets.org/ticket/18146

I think that a possible good temporary way to move forward is to force KiCad to not use the Dark Mode until wxWidgets figures out the fix. This can be accomplished by editing the /Applications/KiCad/kicad.app/Contents/Info.plist file by adding a key "NSRequiresAquaSystemAppearance" and setting that to "true". Below is my full Info.plist file:

Info.plist file with added correction
---------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDocumentTypes</key>
        <array>
            <dict>
                <key>CFBundleTypeRole</key> <string>Editor</string>
                <key>CFBundleTypeIconFile</key> <string>kicad_doc.icns</string>
                <key>CFBundleTypeExtensions</key> <array>
                                                            <string>pro</string>
                                                        </array>
                <key>CFBundleTypeName</key> <string>kicad project files</string>
                <key>LSHandlerRank</key> <string>Owner</string>
            </dict>
        </array>
    <key>CFBundleDevelopmentRegion</key> <string>English</string>
    <key>CFBundleExecutable</key> <string>kicad</string>
    <key>CFBundleGetInfoString</key> <string></string>
    <key>CFBundleIconFile</key> <string>kicad.icns</string>
    <key>CFBundleIdentifier</key> <string>org.kicad-pcb.kicad</string>
    <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string>
    <key>CFBundleLongVersionString</key> <string></string>
    <key>CFBundleName</key> <string>KiCad</string>
    <key>CFBundlePackageType</key> <string>APPL</string>
    <key>CFBundleShortVersionString</key> <string></string>
    <key>CFBundleSignature</key> <string>????</string>
    <key>CFBundleVersion</key> <string></string>
    <key>CSResourcesFileMapped</key> <true/>
    <key>LSRequiresCarbon</key> <true/>
    <key>NSRequiresAquaSystemAppearance</key> <true/>
    <key>NSHumanReadableCopyright</key> <string></string>
    <key>NSHighResolutionCapable</key> <string>True</string>
</dict>
</plist>
---------------------------------------------------------------------------

I would just make a pull request for the change as it is a 1-liner, but I just do not know bzr and figured this would be a bit easier.

Version Information from KiCad:
---------------------------------------------------------------------------
Application: kicad
Version: (5.0.1-3-g963ef8bb5), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.54.0 LibreSSL/2.6.4 zlib/1.2.11 nghttp2/1.24.1
Platform: Mac OS X (Darwin 18.0.0 x86_64), 64 bit, Little endian, wxMac
Build Info:
    wxWidgets: 3.0.4 (UTF-8,STL containers,compatible with 2.8)
    Boost: 1.67.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.54.0
    Compiler: Clang 10.0.0 with C++ ABI 1002

Build settings:
    USE_WX_GRAPHICS_CONTEXT=ON
    USE_WX_OVERLAY=ON
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Justace Clutter (justacec) wrote :

Oops. Sorry I missed the original bug. I still think the source should be patched to make the suggested fix default till wxWidgets figures out what they are going to do.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.