feat: add GIO_LAUNCHED_DESKTOP_FILE to runtime envs
add hooks for dde-dock Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
@ -49,12 +49,12 @@ double getScaleFactor() noexcept
|
||||
return scale;
|
||||
}
|
||||
|
||||
void appendRuntimeScaleFactor(const ApplicationService &app, QVariantMap &runtimeOptions) noexcept
|
||||
void ApplicationService::appendExtraEnvironments(QVariantMap &runtimeOptions) const noexcept
|
||||
{
|
||||
static QStringList scaleEnvs{"DEEPIN_WINE_SCALE=%1;", "GDK_DPI_SCALE=%1;", "QT_SCALE_FACTOR=%1;", "GDK_SCALE=%1;"};
|
||||
QString oldEnv;
|
||||
|
||||
auto factor = app.scaleFactor();
|
||||
// scale factor
|
||||
static QStringList scaleEnvs{"DEEPIN_WINE_SCALE=%1;", "GDK_DPI_SCALE=%1;", "QT_SCALE_FACTOR=%1;", "GDK_SCALE=%1;"};
|
||||
auto factor = scaleFactor();
|
||||
if (auto it = runtimeOptions.find("env"); it != runtimeOptions.cend()) {
|
||||
oldEnv = it->value<QString>();
|
||||
}
|
||||
@ -63,6 +63,9 @@ void appendRuntimeScaleFactor(const ApplicationService &app, QVariantMap &runtim
|
||||
oldEnv.append(env.arg(factor));
|
||||
}
|
||||
|
||||
// GIO
|
||||
oldEnv.append(QString{"GIO_LAUNCHED_DESKTOP_FILE=%1;"}.arg(m_desktopSource.sourcePath()));
|
||||
|
||||
runtimeOptions.insert("env", oldEnv);
|
||||
}
|
||||
|
||||
@ -232,8 +235,7 @@ ApplicationService::Launch(const QString &action, const QStringList &fields, con
|
||||
QString execStr{};
|
||||
const auto &supportedActions = actions();
|
||||
auto optionsMap = options;
|
||||
|
||||
appendRuntimeScaleFactor(*this, optionsMap);
|
||||
appendExtraEnvironments(optionsMap);
|
||||
|
||||
if (!realExec.isNull()) { // we want to replace exec of this applications.
|
||||
if (realExec.isEmpty()) {
|
||||
|
@ -190,6 +190,7 @@ private:
|
||||
static bool shouldBeShown(const std::unique_ptr<DesktopEntry> &entry) noexcept;
|
||||
[[nodiscard]] bool autostartCheck(const QString &filePath) const noexcept;
|
||||
void setAutostartSource(AutostartSource &&source) noexcept;
|
||||
void appendExtraEnvironments(QVariantMap &runtimeOptions) const noexcept;
|
||||
[[nodiscard]] ApplicationManager1Service *parent() { return dynamic_cast<ApplicationManager1Service *>(QObject::parent()); }
|
||||
[[nodiscard]] const ApplicationManager1Service *parent() const
|
||||
{
|
||||
|
Reference in New Issue
Block a user