summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Kyle Kienapfel2022-08-03 17:31:57 -0700
committerGravatar Kyle Kienapfel2022-08-03 21:49:23 -0700
commit63673dcf9833f3e9a8bdcd6fc90a92e2dd9bf1ae (patch)
treed8d4232f365f64232babb4017e7b774e73e06e71
parentMerge pull request #8678 from liamwhite/stop-waiting (diff)
downloadyuzu-63673dcf9833f3e9a8bdcd6fc90a92e2dd9bf1ae.tar.gz
yuzu-63673dcf9833f3e9a8bdcd6fc90a92e2dd9bf1ae.tar.xz
yuzu-63673dcf9833f3e9a8bdcd6fc90a92e2dd9bf1ae.zip
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
-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 f8c234082..85b9652f0 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -4067,6 +4067,15 @@ int main(int argc, char* argv[]) {
4067 QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity); 4067 QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity);
4068 QApplication app(argc, argv); 4068 QApplication app(argc, argv);
4069 4069
4070 // Workaround for QTBUG-85409, for Suzhou numerals the number 1 is actually \u3021
4071 // so we can see if we get \u3008 instead
4072 // TL;DR all other number formats are consecutive in unicode code points
4073 // This bug is fixed in Qt6, specifically 6.0.0-alpha1
4074 const QLocale locale = QLocale::system();
4075 if (QStringLiteral("\u3008") == locale.toString(1)) {
4076 QLocale::setDefault(QLocale::system().name());
4077 }
4078
4070 // Qt changes the locale and causes issues in float conversion using std::to_string() when 4079 // Qt changes the locale and causes issues in float conversion using std::to_string() when
4071 // generating shaders 4080 // generating shaders
4072 setlocale(LC_ALL, "C"); 4081 setlocale(LC_ALL, "C");