Open JuhaSointusalo opened 5 years ago
One of the highlights of wxWidgets 3.1.2 released on December 10, 2018 is
wxWidgets ticket #18146 seems to track the progress.
I doubt that wxWidgets' code will modify the Manager's taskbar (menu bar) icons for dark mode automatically. I expect someone will need to create new artwork for the three icons (normal, suspended [snooze] and disconnected) in addition to the three we already have. Note also that skins can and do override the default taskbar icons, so this will need to be done for all skins (such as World Community Grid, GridRepublic, etc.) These icons are built using the wxWidgets cross-platform approach of XPM files, which is very different from the way this would be handled in a conventional Macintosh application, so the standard way of doing this on the Mac does not apply here.
There is code here for detecting when in Dark Mode. Since this is Cocoa code, it should probably be added to _lib/mac/macutil.mm. Finally, the relevant code in clientgui/BOINCGUIApp.cpp, clientgui/SkinManager.cpp and clientgui/BOINCTaskBar.cpp and related header files will need to be updated to get and select the correct icons.
Although I have retired from software development, I have continued to fix critical problems. I do not consider this to fall into that category. When one or more new Mac programmers have been recruited to support BOINC, I would be happy to point them in the right direction to handle this issue, but I am not prepared to fix it myself. This is a relatively simple fix, and might be a good first project for a new Mac BOINC developer to work on.
As an update issue #2981 includes commit e33f384329bfda002908c8691c7cd4a596837dcf implements the option to prevent attempting to render in dark mode (which doesn't work) until such a time as wxWidgets suports dark mode fully. The option is described by mac here.
i get a white on white with: boinc_7.14.3_macOSX_x86_64 10.14.6 (18G103) Mojave
Can we please do something about this? In its current form the application is almost impossible to use. That is not a "nice-to-have" feature request, if system is in dark-mode, you cannot really read any text on the UI.
This needs to be addressed within the wxWidgets GUI library. It will be interesting to see if switching to the latest version of wxWidgets (3.1.3) fixes it. The change log for wxWidgets 3.1.3 does list these two items:
Add wxSystemAppearance, notably useful for macOS dark mode checks.
Support for macOS Mojave and later dark mode.
Hopefully, one of the current Mac BOINC developers will make the changes needed to update to the latest version of the wxWidgets in the near future. However, changing the versions of the dependent libraries, and especially wxWidgets, often introduces new bugs, so it requires a fairly extensive round of testing, and often requires developing patches to wxWidgets to fix any new bugs. For that reason, it probably won't happen until after a stable build of BOINC version 7.16.x is released,
We have some custom-drawn elements (e.g. main grid with progress bar) that should be adjusted too to support Dark Mode.
Same issue on macOS 10.15.4 but only with BOINC Manager 7.14.3. Version 7.14.2 works fine.
This is fixed in BOINC 7.16, which tells the OS to not use dark mode for BOINC even when Dark Mode is generally selected. This is a workaround until BOINC can be updated to fully support dark mode.
Unfortunately, that workaround did not make it into BOINC 7.14.3.
i don't find a 7.16 download :(
I found 7.16.3 in the download folder. Would be good to have Release Notes to in order to have an idea about stability etc.
7.16.3 is from 29-Sep-2019
Sorry I was not as clear as I should have been. BOINC 7.16.3 was rejected due to a critical problem. 7.16.4 should be released for alpha testing soon. I should have written: This will be fixed in BOINC 7.16.
I have released BOINC 7.14.4 for Macintosh which tells the OS to not use dark mode for BOINC even when Dark Mode is generally selected. This workaround allows BOINC to be usable under Dark Mode until BOINC can be updated to fully support dark mode.
I still had white text issues with both 7.14.4 and 7.16.6 (the latest I could find) in dark mode, However, entering this command to manually force non-dark mode for the bionic UI did work:
defaults write edu.berkeley.boinc NSRequiresAquaSystemAppearance -bool yes
Not this puts the UI of app windows in Light mode; it does not address the menubar icon.
Both 7.14.4 and 7.16.6 already contain that property in their info.plst property files:
`
` I haven't tested 7.6.6 on OS 10.15, but I tested 7.14.4 on OS 10.15.4 and it worked correctly for me in dark mode.
There is an extra wrinkle even if wxWidgets now supports dark mode on Macs. The main BOINC Advanced View displays use BOINCListCtrl, which is derived from wxListCtrl, which is a native control only under MS Windows but not on MacOS or Linux. So the wxWdgets implementation of wxListCtrl probably requires significant modification.
I've posted a branch to replace the menubar icons under macOS with light/dark gray ones: https://github.com/BOINC/boinc/pull/4586 I could use some help from someone with more C++ expertise in getting the icons to change out as the system switches between the light/dark modes.
From https://boinc.berkeley.edu/forum_thread.php?id=12755:
Hi, would be wonderful if you add a dark theme to reflect Mojave color. Moreover doing a dark theme avoid drastic color changes while switching between apps.
From https://boinc.berkeley.edu/forum_thread.php?id=12684:
The BOINC menu bar icon for macOS is really awful in the Dark Mode of Mojave…
Because the current one was drawn for a white background.
Is it possible to have another icon displayed in dark mode, to add support for Mojave? Or at least please a simple gray color of the icon? It will be more convenient.