diff --git a/clientgui/NoticeListCtrl.cpp b/clientgui/NoticeListCtrl.cpp index be65187186..28c4a9b82d 100644 --- a/clientgui/NoticeListCtrl.cpp +++ b/clientgui/NoticeListCtrl.cpp @@ -102,7 +102,11 @@ bool CNoticeListCtrl::Create( wxWindow* parent ) { m_itemCount = 0; if (wxGetApp().GetIsDarkMode()){ +#if wxUSE_WEBVIEW m_noticesBody = wxT(""); +#else + m_noticesBody = wxT(""); +#endif } else { m_noticesBody = wxT(""); } @@ -153,9 +157,13 @@ void CNoticeListCtrl::SetItemCount(int newCount) { if (wxGetApp().GetIsDarkMode()){ - m_noticesBody = wxT(""); +#if wxUSE_WEBVIEW + m_noticesBody = wxT(""); +#else + m_noticesBody = wxT(""); +#endif } else { - m_noticesBody = wxT(""); + m_noticesBody = wxT(""); } for (i=0; iReplace(m_pBackgroundPanel->m_taskPanel, newTaskPanel); m_pBackgroundPanel->m_taskPanel->Destroy(); m_pBackgroundPanel->m_taskPanel = newTaskPanel; - m_pBackgroundPanel->m_taskPanel->ReskinInterface(); CSimpleProjectPanel* newProjectpanel = new CSimpleProjectPanel(m_pBackgroundPanel); panelSizer->Replace(m_pBackgroundPanel->m_projPanel, newProjectpanel); @@ -950,9 +949,7 @@ void CSimpleFrame::OnDarkModeChanged( wxSysColourChangedEvent& WXUNUSED(event) ) m_pBackgroundPanel->Layout(); - // Force a redraw in case a modal dialog is also open - m_pBackgroundPanel->m_taskPanel->UpdatePanel(false); - m_pBackgroundPanel->m_projPanel->UpdateInterface(); + m_pBackgroundPanel->ReskinInterface(); // Restore our task and project settings int iTask = m_pBackgroundPanel->m_taskPanel->GetTaskSelectionCtrl()->FindString(taskStr); @@ -1178,6 +1175,28 @@ void CSimpleGUIPanel::SetBackgroundBitmap() { wxMemoryDC srcDC(*srcBmp); dc.Blit(destX, destY, w, h, &srcDC, srcX, srcY, wxCOPY); +#ifdef __WXMAC__ + // In Dark Mode, MacOS makes button backgrounds partly tranparent + // rather than black. It uses a slightly darker rendition of the + // underlying bitmap, which can make the button's white text hard + // to read with some skins. So we force these button backgrounds + // to be dark gray. + if (wxGetApp().GetIsDarkMode()) { + wxPen oldPen = dc.GetPen(); + dc.SetPen(*wxBLACK); + wxBrush oldBrush = dc.GetBrush(); + dc.SetBrush(*wxBLACK_BRUSH); + wxRect r = m_NoticesButton->GetRect(); + dc.DrawRoundedRectangle(r, 5); + r = m_SuspendResumeButton->GetRect(); + dc.DrawRoundedRectangle(r, 5); + r = m_HelpButton->GetRect(); + dc.DrawRoundedRectangle(r, 5); + dc.SetPen(oldPen); + dc.SetBrush(oldBrush); + } +#endif + // dc.DrawBitmap(*pSkinSimple->GetBackgroundImage()->GetBitmap(), 0, 0, false); wxLogTrace(wxT("Function Start/End"), wxT("CSimpleGUIPanel::SetBackgroundBitmap - Function End"));