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