From 45d7ab7118b99033aca71700c2f5dbded695c53d Mon Sep 17 00:00:00 2001 From: liuxinhao Date: Mon, 15 Aug 2022 14:58:13 +0800 Subject: [PATCH] fix(hidpi): Fixed QT font DPI to avoid double scaling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 设置缩放两倍时,通过QT_FONT_DPI固定QT字体DPI,避免QT_SCALE_FACTOR和Xft.dpi对字体进行两次缩放过大的问题 Closes #I5LQSK #I5LQQQ --- plugins/xsettings/xsettings-manager.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/xsettings/xsettings-manager.cpp b/plugins/xsettings/xsettings-manager.cpp index 9612a85..7532668 100644 --- a/plugins/xsettings/xsettings-manager.cpp +++ b/plugins/xsettings/xsettings-manager.cpp @@ -346,10 +346,19 @@ void XSettingsManager::scale_change_workarounds(int32_t scale) KLOG_WARNING("There was a problem when setting QT_AUTO_SCREEN_SCALE_FACTOR=0: %s", error.c_str()); } + + /* FIXME: 由于QT_SCALE_FACTOR将会放大窗口以及pt大小字体,而缩放将会更改Xft.dpi属性,该属性也会导致qt pt字体大小放大,字体将会放大过多。 + 目前暂时解决方案:缩放两倍时固定Qt字体DPI 96,由QT_SCALE_FACTOR环境变量对窗口以及字体进行放大. + 后续应弃用QT_SCALE_FACTOR方案 + */ if (!XSettingsUtils::update_user_env_variable("QT_SCALE_FACTOR", scale == 2 ? "2" : "1", error)) { KLOG_WARNING("There was a problem when setting QT_SCALE_FACTOR=%d: %s", scale, error.c_str()); } + else if ( scale==2 && !XSettingsUtils::update_user_env_variable("QT_FONT_DPI","96",error) ) + { + KLOG_WARNING("There was a problem when setting QT_FONT_DPI=96: %s", error.c_str()); + } } } else -- 2.33.0