diff --git a/Externals/wxWidgets3/build/msw/wx_base.vcxproj b/Externals/wxWidgets3/build/msw/wx_base.vcxproj index d212dce20f..7a2591b851 100644 --- a/Externals/wxWidgets3/build/msw/wx_base.vcxproj +++ b/Externals/wxWidgets3/build/msw/wx_base.vcxproj @@ -1273,7 +1273,9 @@ true - + + true + diff --git a/Externals/wxWidgets3/wx/wxmsw.h b/Externals/wxWidgets3/wx/wxmsw.h index 5443e75795..b53fdb6ed8 100644 --- a/Externals/wxWidgets3/wx/wxmsw.h +++ b/Externals/wxWidgets3/wx/wxmsw.h @@ -1209,7 +1209,7 @@ // Set to 0 to disable the use of the native progress dialog (currently only // available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 +#define wxUSE_NATIVE_PROGRESSDLG 0 // support for startup tips (wxShowTip &c) #define wxUSE_STARTUP_TIPS 1 diff --git a/Source/Core/DolphinWX/GameListCtrl.cpp b/Source/Core/DolphinWX/GameListCtrl.cpp index 39ed2d4e9d..e382588b75 100644 --- a/Source/Core/DolphinWX/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/GameListCtrl.cpp @@ -30,6 +30,11 @@ #include #include +#ifdef __WXMSW__ +#include +#include +#endif + #include "Common/CDUtils.h" #include "Common/CommonPaths.h" #include "Common/CommonTypes.h" @@ -1384,3 +1389,30 @@ bool CGameListCtrl::WiiCompressWarning() "by removing padding data. Your disc image will still work. Continue?"), _("Warning"), wxYES_NO) == wxYES; } + +#ifdef __WXMSW__ +// Windows draws vertical rules between columns when using UXTheme (e.g. Aero, Win10) +// This function paints over those lines which removes them. +// [The repaint background idea is ripped off from Eclipse SWT which does the same thing] +bool CGameListCtrl::MSWOnNotify(int id, WXLPARAM lparam, WXLPARAM* result) +{ + NMLVCUSTOMDRAW* nmlv = reinterpret_cast(lparam); + // Intercept the NM_CUSTOMDRAW[CDDS_PREPAINT] + // This event occurs after the background has been painted before the content of the list + // is painted. We can repaint the background to eliminate the column lines here. + if (nmlv->nmcd.hdr.hwndFrom == GetHWND() && nmlv->nmcd.hdr.code == NM_CUSTOMDRAW && + nmlv->nmcd.dwDrawStage == CDDS_PREPAINT) + { + // The column separators have already been painted, paint over them. + wxDCTemp dc(nmlv->nmcd.hdc); + dc.SetBrush(GetBackgroundColour()); + dc.SetPen(*wxTRANSPARENT_PEN); + dc.DrawRectangle(nmlv->nmcd.rc.left, nmlv->nmcd.rc.top, + nmlv->nmcd.rc.right - nmlv->nmcd.rc.left, + nmlv->nmcd.rc.bottom - nmlv->nmcd.rc.top); + } + + // Defer to wxWidgets for normal processing. + return wxListCtrl::MSWOnNotify(id, lparam, result); +} +#endif diff --git a/Source/Core/DolphinWX/GameListCtrl.h b/Source/Core/DolphinWX/GameListCtrl.h index 09f91eca99..7d6275ed47 100644 --- a/Source/Core/DolphinWX/GameListCtrl.h +++ b/Source/Core/DolphinWX/GameListCtrl.h @@ -62,6 +62,10 @@ public: NUMBER_OF_COLUMN }; +#ifdef __WXMSW__ + bool MSWOnNotify(int id, WXLPARAM lparam, WXLPARAM* result) override; +#endif + private: std::vector m_FlagImageIndex; std::vector m_PlatformImageIndex; diff --git a/Source/Core/DolphinWX/Main.cpp b/Source/Core/DolphinWX/Main.cpp index fdaa94b6d5..305cae3b7d 100644 --- a/Source/Core/DolphinWX/Main.cpp +++ b/Source/Core/DolphinWX/Main.cpp @@ -315,11 +315,11 @@ void DolphinApp::InitLanguageSupport() m_locale.reset(new wxLocale(language)); // Specify where dolphins *.gmo files are located on each operating system -#ifdef _WIN32 +#ifdef __WXMSW__ m_locale->AddCatalogLookupPathPrefix(StrToWxStr(File::GetExeDirectory() + DIR_SEP "Languages")); -#elif defined(__LINUX__) +#elif defined(__WXGTK__) m_locale->AddCatalogLookupPathPrefix(StrToWxStr(DATA_DIR "../locale")); -#elif defined(__APPLE__) +#elif defined(__WXOSX__) m_locale->AddCatalogLookupPathPrefix( StrToWxStr(File::GetBundleDirectory() + "Contents/Resources")); #endif