aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
diff options
context:
space:
mode:
authorKyle Kienapfel <Docteh@users.noreply.github.com>2022-08-03 17:31:57 -0700
committerKyle Kienapfel <Docteh@users.noreply.github.com>2022-08-03 21:49:23 -0700
commit63673dcf9833f3e9a8bdcd6fc90a92e2dd9bf1ae (patch)
treed8d4232f365f64232babb4017e7b774e73e06e71 /src/yuzu/main.cpp
parent5ae0e5ba67ea680c4b36b4b33d562a2f8d47fc8d (diff)
Qt5 work around for suzhou numerals
When windows is told to display Standard digits as suzhou, it is showing incorrect information in yuzu, file sizes and the CPU speed limiter are effected by this. See #8698 for some screenshots. Setting number format to Chinese (Simplified, Hong Kong SAR) is one way to see this issue in action. Fixes #8698
Diffstat (limited to 'src/yuzu/main.cpp')
-rw-r--r--src/yuzu/main.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index f8c2340828..85b9652f01 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -4067,6 +4067,15 @@ int main(int argc, char* argv[]) {
QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity);
QApplication app(argc, argv);
+ // Workaround for QTBUG-85409, for Suzhou numerals the number 1 is actually \u3021
+ // so we can see if we get \u3008 instead
+ // TL;DR all other number formats are consecutive in unicode code points
+ // This bug is fixed in Qt6, specifically 6.0.0-alpha1
+ const QLocale locale = QLocale::system();
+ if (QStringLiteral("\u3008") == locale.toString(1)) {
+ QLocale::setDefault(QLocale::system().name());
+ }
+
// Qt changes the locale and causes issues in float conversion using std::to_string() when
// generating shaders
setlocale(LC_ALL, "C");