diff --git a/shell/packageplugins/lookandfeel/plasma-packagestructure-lookandfeel.desktop b/shell/packageplugins/lookandfeel/plasma-packagestructure-lookandfeel.desktop --- a/shell/packageplugins/lookandfeel/plasma-packagestructure-lookandfeel.desktop +++ b/shell/packageplugins/lookandfeel/plasma-packagestructure-lookandfeel.desktop @@ -16,7 +16,7 @@ Name[fi]=Ulkoasu ja tuntuma Name[fr]=Apparence Name[gl]=Aparencia e comportamento -Name[he]=מראה והרגשה +Name[he]=מראה ותחושה Name[hu]=Megjelenés Name[ia]=Semblantia Name[id]=Tampilan dan Rasa diff --git a/shell/scripting/scriptengine.cpp b/shell/scripting/scriptengine.cpp --- a/shell/scripting/scriptengine.cpp +++ b/shell/scripting/scriptengine.cpp @@ -227,16 +227,18 @@ qDebug() << "Setting default Containment plugin:" << plugin; - if (plugin.isEmpty() || plugin == QLatin1String("undefined")) { - KConfigGroup shellCfg = KConfigGroup(KSharedConfig::openConfig(env->m_corona->package().filePath("defaults")), "Desktop"); - plugin = shellCfg.readEntry("Containment", "org.kde.desktopcontainment"); - } - ShellCorona *sc = qobject_cast(env->m_corona); StandaloneAppCorona *ac = qobject_cast(env->m_corona); if (sc) { + if (plugin.isEmpty() || plugin == QLatin1String("undefined")) { + plugin = sc->defaultContainmentPlugin(); + } sc->insertActivity(id, plugin); } else if (ac) { + if (plugin.isEmpty() || plugin == QLatin1String("undefined")) { + KConfigGroup shellCfg = KConfigGroup(KSharedConfig::openConfig(env->m_corona->package().filePath("defaults")), "Desktop"); + plugin = shellCfg.readEntry("Containment", "org.kde.desktopcontainment"); + } ac->insertActivity(id, plugin); } diff --git a/shell/shellcorona.h b/shell/shellcorona.h --- a/shell/shellcorona.h +++ b/shell/shellcorona.h @@ -106,6 +106,8 @@ KWayland::Client::PlasmaShell *waylandPlasmaShellInterface() const; + QString defaultContainmentPlugin() const; + protected: bool eventFilter(QObject *watched, QEvent *event) override; @@ -213,6 +215,7 @@ KActivities::Controller *m_activityController; QHash m_panelViews; KConfigGroup m_desktopDefaultsConfig; + KConfigGroup m_lnfDefaultsConfig; QList m_waitingPanels; QHash m_activityContainmentPlugins; QHash > m_desktopContainments; diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -117,6 +117,8 @@ connect(&m_reconsiderOutputsTimer, &QTimer::timeout, this, &ShellCorona::reconsiderOutputs); m_desktopDefaultsConfig = KConfigGroup(KSharedConfig::openConfig(package().filePath("defaults")), "Desktop"); + m_lnfDefaultsConfig = KConfigGroup(KSharedConfig::openConfig(m_lookAndFeelPackage.filePath("defaults")), "Desktop"); + m_lnfDefaultsConfig = KConfigGroup(&m_lnfDefaultsConfig, QStringLiteral("org.kde.plasma.desktop")); new PlasmaShellAdaptor(this); @@ -243,6 +245,8 @@ package.setAllowExternalPaths(true); setKPackage(package); m_desktopDefaultsConfig = KConfigGroup(KSharedConfig::openConfig(package.filePath("defaults")), "Desktop"); + m_lnfDefaultsConfig = KConfigGroup(KSharedConfig::openConfig(m_lookAndFeelPackage.filePath("defaults")), "Desktop"); + m_lnfDefaultsConfig = KConfigGroup(&m_lnfDefaultsConfig, shell); const QString themeGroupKey = QStringLiteral("Theme"); const QString themeNameKey = QStringLiteral("name"); @@ -917,7 +921,7 @@ QString plugin = m_activityContainmentPlugins.value(activity); if (plugin.isEmpty()) { - plugin = m_desktopDefaultsConfig.readEntry("Containment", "org.kde.desktopcontainment"); + plugin = defaultContainmentPlugin(); } Plasma::Containment *containment = containmentForScreen(screenNum, plugin, QVariantList()); @@ -1220,8 +1224,7 @@ return; } - const QString plugin = m_desktopDefaultsConfig.readEntry("Containment", "org.kde.desktopcontainment"); - m_activityContainmentPlugins.insert(id, plugin); + m_activityContainmentPlugins.insert(id, defaultContainmentPlugin()); } void ShellCorona::activityRemoved(const QString &id) @@ -1699,6 +1702,15 @@ return m_waylandPlasmaShell; } +QString ShellCorona::defaultContainmentPlugin() const +{ + QString plugin = m_lnfDefaultsConfig.readEntry("Containment", QString()); + if (plugin.isEmpty()) { + plugin = m_desktopDefaultsConfig.readEntry("Containment", "org.kde.desktopcontainment"); + } + return plugin; +} + void ShellCorona::updateStruts() { foreach(PanelView* view, m_panelViews) {