Mercurial > hg > svapp
diff framework/MainWindowBase.cpp @ 734:de7969894402 background-mode
Fix initial dark background flag when OS theme indicates something different to the facts on the ground
author | Chris Cannam |
---|---|
date | Mon, 20 Jan 2020 17:20:09 +0000 |
parents | a39538eaed9d |
children | 4b58b8f44be7 |
line wrap: on
line diff
--- a/framework/MainWindowBase.cpp Fri Jan 17 21:38:43 2020 +0000 +++ b/framework/MainWindowBase.cpp Mon Jan 20 17:20:09 2020 +0000 @@ -212,16 +212,27 @@ SVDEBUG << "MainWindowBase: View font size is " << viewFontSize << endl; #ifndef Q_OS_MAC + Preferences::BackgroundMode mode = Preferences::getInstance()->getBackgroundMode(); - if (mode == Preferences::BackgroundFromTheme && OSThemeIsDark()) { - mode = Preferences::DarkBackground; + + m_initialDarkBackground = m_viewManager->getGlobalDarkBackground(); + + if (OSReportsDarkThemeActive()) { + // NB !(OSReportsDarkThemeActive()) doesn't necessarily mean + // the theme is light - the function also cunningly returns + // false if it has no way to tell + m_initialDarkBackground = true; } - m_initialDarkBackground = m_viewManager->getGlobalDarkBackground(); - if (mode != Preferences::BackgroundFromTheme) { + + if (mode == Preferences::BackgroundFromTheme) { + m_viewManager->setGlobalDarkBackground + (m_initialDarkBackground); + } else { m_viewManager->setGlobalDarkBackground (mode == Preferences::DarkBackground); } + #endif m_paneStack = new PaneStack(nullptr, m_viewManager, paneStackOptions);