From f981650ffb486b916b8956403a9db38cddb17716 Mon Sep 17 00:00:00 2001 From: zhangkun Date: Wed, 10 Dec 2025 20:59:08 +0800 Subject: [PATCH] fix: correct Xft/DPI property name in XSettings update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Fixed incorrect property name used when updating Xft/DPI setting via D-Bus 2. Changed property from internal DConfig key "xft.dpi" to actual XSettings property "Xft/DPI" 3. Added missing QLoggingCategory include for proper logging functionality 4. Added proper scaling calculation for DPI value before comparison Log: Fixed incorrect XSettings property name when updating display DPI settings Influence: 1. Test display scaling changes to ensure DPI settings are properly applied 2. Verify XSettings D-Bus interface receives correct property name "Xft/ DPI" 3. Check that DConfig values are correctly synchronized with XSettings 4. Test with different display scaling factors to ensure DPI calculation works correctly 5. Verify that DPI changes are properly reflected in applications using XSettings fix: 修正XSettings更新中Xft/DPI属性名称错误 1. 修复通过D-Bus更新Xft/DPI设置时使用的错误属性名称 2. 将属性从内部DConfig键"xft.dpi"更改为实际的XSettings属性"Xft/DPI" 3. 添加缺失的QLoggingCategory包含以支持正确的日志功能 4. 在比较前添加了DPI值的正确缩放计算 Log: 修复更新显示DPI设置时XSettings属性名称错误的问题 Influence: 1. 测试显示缩放更改以确保DPI设置正确应用 2. 验证XSettings D-Bus接口接收到正确的属性名称"Xft/DPI" 3. 检查DConfig值是否正确与XSettings同步 4. 使用不同的显示缩放因子测试以确保DPI计算正常工作 5. 验证DPI更改是否正确反映在使用XSettings的应用程序中 pms: BUG-343127 --- src/plugin-qt/xsettings/impl/xsettingsmanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp b/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp index ff67ddd4..03249840 100644 --- a/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp +++ b/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp @@ -253,10 +253,11 @@ void XSettingsManager::updateDPI() bOk = false; int tempXftDpi = m_settingDconfig->value(dcKeyXftDpi).toInt(&bOk); if (bOk) { + scaledDpi = static_cast((DPI_FALLBACK * 1024) * scale); if (tempXftDpi != scaledDpi) { m_settingDconfig->setValue(dcKeyXftDpi, scaledDpi); XsSetting setting; - setting.prop = dcKeyXftDpi; + setting.prop = "Xft/DPI"; setting.value = scaledDpi; setting.type = HeadTypeInteger;