diff --git a/frame/item/appitem.cpp b/frame/item/appitem.cpp index 8f207fe64..354dadf7d 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -732,8 +732,8 @@ bool AppItem::checkGSettingsControl() const ? m_dockedAppSettings : m_activeAppSettings; - return (setting && setting->keys().contains("control") && setting->get("control").toBool()) || - (m_appSettings && m_appSettings->keys().contains("control") && m_appSettings->get("control").toBool()); + return ((m_appSettings && m_appSettings->keys().contains("control") && m_appSettings->get("control").toBool()) + || (setting && setting->keys().contains("control") && setting->get("control").toBool())); } void AppItem::onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType) diff --git a/plugins/tray/system-trays/systemtrayitem.cpp b/plugins/tray/system-trays/systemtrayitem.cpp index 312f5df83..1b422bd28 100644 --- a/plugins/tray/system-trays/systemtrayitem.cpp +++ b/plugins/tray/system-trays/systemtrayitem.cpp @@ -491,5 +491,7 @@ void SystemTrayItem::onGSettingsChanged(const QString &key) { bool SystemTrayItem::checkGSettingsControl() const { - return (m_gsettings && m_gsettings->get("control").toBool()); + // 优先判断com.deepin.dde.dock.module.systemtray的control值是否为true(优先级更高),如果不为true,再判断每一个托盘对应的gsetting配置的control值 + bool isEnable = Utils::SettingValue("com.deepin.dde.dock.module.systemtray", QByteArray(), "control", false).toBool(); + return (isEnable || (m_gsettings && m_gsettings->get("control").toBool())); }