From ad39c0c516390adb156e3383cb3bc80b6d182144 Mon Sep 17 00:00:00 2001 From: Crementif <26669564+Crementif@users.noreply.github.com> Date: Sat, 22 Nov 2025 21:28:34 +0100 Subject: [PATCH] Downgrade wxWidgets to prevent regression with row colors in light mode --- .../vcpkg_overlay_ports/wxwidgets/portfile.cmake | 4 ++-- src/gui/wxgui/components/wxGameList.cpp | 11 ++++------- src/gui/wxgui/components/wxGameList.h | 7 ++++--- src/gui/wxgui/wxHelper.h | 3 +-- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake b/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake index 0f01ddd1..d9962958 100644 --- a/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake +++ b/dependencies/vcpkg_overlay_ports/wxwidgets/portfile.cmake @@ -1,8 +1,8 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wxWidgets/wxWidgets - REF "f3da561" - SHA512 04e273b83ec683ed18ff5278371441b5ecf5897d34a896307cb59c58fb7adf68a70f6af3b3193bb1c63b9985edd5e6807202c05af3202a54c4142518ed15a71b + REF "bfd436b" + SHA512 bd3fd6d0d0db3b6fa34eceae1119e21ffd2f62221dcd249f8b8b82a6e65d83a05101e4e1e4ca9b9c4d7937add73b113bb029b03b05d2c3d87d17c1922d800a24 HEAD_REF master PATCHES install-layout.patch diff --git a/src/gui/wxgui/components/wxGameList.cpp b/src/gui/wxgui/components/wxGameList.cpp index ac831b5a..ae0de6c7 100644 --- a/src/gui/wxgui/components/wxGameList.cpp +++ b/src/gui/wxgui/components/wxGameList.cpp @@ -452,25 +452,22 @@ void wxGameList::UpdateItemColors(sint32 startIndex) { wxWindowUpdateLocker lock(this); - wxColour bgColourPrimary = GetBackgroundColour(); - wxColour bgColourSecondary = wxHelper::CalculateAccentColour(bgColourPrimary); - for (int i = startIndex; i < GetItemCount(); ++i) { - const auto titleId = (uint64)GetItemData(i); + const uint64 titleId = GetItemData(i); if (GetConfig().IsGameListFavorite(titleId)) { SetItemBackgroundColour(i, kFavoriteColor); SetItemTextColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); } - else if ((i&1) != 0) + else if ((i % 2) != 0) { - SetItemBackgroundColour(i, bgColourPrimary); + SetItemBackgroundColour(i, kPrimaryColor); SetItemTextColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); } else { - SetItemBackgroundColour(i, bgColourSecondary); + SetItemBackgroundColour(i, kAlternateColor); SetItemTextColour(i, wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); } } diff --git a/src/gui/wxgui/components/wxGameList.h b/src/gui/wxgui/components/wxGameList.h index 40edf0e1..50bd4034 100644 --- a/src/gui/wxgui/components/wxGameList.h +++ b/src/gui/wxgui/components/wxGameList.h @@ -3,15 +3,15 @@ #include "config/CemuConfig.h" #include "Cafe/TitleList/TitleId.h" -#include #include -#include #include #include #include #include #include + +#include "wxHelper.h" #include "util/helpers/Semaphore.h" class wxTitleIdEvent : public wxCommandEvent @@ -66,7 +66,8 @@ private: const wxColour kUpdateColor{ wxSystemSettings::SelectLightDark(wxColour(195, 57, 57), wxColour(84, 29, 29)) }; const wxColour kFavoriteColor{ wxSystemSettings::SelectLightDark(wxColour(253, 246, 211), wxColour(82, 84, 48)) }; - const wxColour kSecondColor{ wxSystemSettings::SelectLightDark(wxColour(242, 249, 253), wxColour(34, 34, 34)) }; + const wxColour kPrimaryColor = GetBackgroundColour(); + const wxColour kAlternateColor = wxHelper::CalculateAccentColour(kPrimaryColor); void UpdateItemColors(sint32 startIndex = 0); enum ItemColumns : int diff --git a/src/gui/wxgui/wxHelper.h b/src/gui/wxgui/wxHelper.h index 06315756..0a14c9ba 100644 --- a/src/gui/wxgui/wxHelper.h +++ b/src/gui/wxgui/wxHelper.h @@ -25,10 +25,9 @@ namespace wxHelper inline wxColour CalculateAccentColour(const wxColour& bgColour) { - wxColour bgColourSecondary; const uint32 bgLightness = (bgColour.GetRed() + bgColour.GetGreen() + bgColour.GetBlue()) / 3; const bool isDarkTheme = bgLightness < 128; - bgColourSecondary = bgColour.ChangeLightness(isDarkTheme ? 110 : 90); // color for even rows + wxColour bgColourSecondary = bgColour.ChangeLightness(isDarkTheme ? 110 : 90); // color for even rows // for very light themes we'll use a blue tint to match the older Windows Cemu look if (bgLightness > 250) bgColourSecondary = wxColour(bgColour.Red() - 13, bgColour.Green() - 6, bgColour.Blue() - 2);