diff --git a/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp b/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp index b2acb39d..2263d581 100644 --- a/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp +++ b/src/plugin-qt/xsettings/impl/xsettingsmanager.cpp @@ -30,8 +30,18 @@ XSettingsManager::XSettingsManager(QObject *parent) , m_xcbUtils(XcbUtils::getInstance()) { connect(m_settingDconfig, &DTK_CORE_NAMESPACE::DConfig::valueChanged, this, &XSettingsManager::handleDConfigChangedCb); - setScreenScaleFactors(getScreenScaleFactors(), false); - adjustScaleFactor(getRecommendedScaleFactor()); + + double scale = 0; + if (m_settingDconfig->isValid()) { + scale = m_settingDconfig->value("scale-factor").toDouble(); + } + + // scale <= 0 is invalid, use recommended scale factor + if (scale <= 0) { + setScreenScaleFactors(getScreenScaleFactors(), false); + adjustScaleFactor(getRecommendedScaleFactor()); + } + setSettings(getSettingsInSchema()); updateDPI(); diff --git a/src/plugin-qt/xsettings/misc/org.deepin.dde.XSettings1.service b/src/plugin-qt/xsettings/misc/org.deepin.dde.XSettings1.service index 164bfd07..ca60c8bc 100644 --- a/src/plugin-qt/xsettings/misc/org.deepin.dde.XSettings1.service +++ b/src/plugin-qt/xsettings/misc/org.deepin.dde.XSettings1.service @@ -7,8 +7,6 @@ CollectMode=inactive-or-failed PartOf=dde-session-pre.target Before=dde-session-pre.target -Before=org.dde.session.Daemon1.service - [Service] Type=dbus BusName=org.deepin.dde.XSettings1