diff --git a/api/dbus/org.desktopspec.ApplicationManager1.Application.xml b/api/dbus/org.desktopspec.ApplicationManager1.Application.xml index 2d33b39..de2f500 100644 --- a/api/dbus/org.desktopspec.ApplicationManager1.Application.xml +++ b/api/dbus/org.desktopspec.ApplicationManager1.Application.xml @@ -117,6 +117,14 @@ + + + + + diff --git a/src/dbus/applicationservice.cpp b/src/dbus/applicationservice.cpp index 75b387c..f016ebf 100644 --- a/src/dbus/applicationservice.cpp +++ b/src/dbus/applicationservice.cpp @@ -559,6 +559,12 @@ bool ApplicationService::terminal() const noexcept return false; } +QString ApplicationService::startupWMClass() const noexcept +{ + auto value = findEntryValue(DesktopFileEntryKey, "StartupWMClass", EntryValueType::String); + return value.isNull() ? QString{} : value.toString(); +} + qint64 ApplicationService::installedTime() const noexcept { return m_installedTime; @@ -894,6 +900,7 @@ void ApplicationService::resetEntry(DesktopEntry *newEntry) noexcept emit terminalChanged(); emit environChanged(); emit launchedTimesChanged(); + emit startupWMClassChanged(); } std::optional ApplicationService::unescapeExecArgs(const QString &str) noexcept diff --git a/src/dbus/applicationservice.h b/src/dbus/applicationservice.h index f2acd30..df7299d 100644 --- a/src/dbus/applicationservice.h +++ b/src/dbus/applicationservice.h @@ -74,6 +74,9 @@ public: Q_PROPERTY(bool Terminal READ terminal NOTIFY terminalChanged) [[nodiscard]] bool terminal() const noexcept; + Q_PROPERTY(QString StartupWMClass READ startupWMClass NOTIFY startupWMClassChanged) + [[nodiscard]] QString startupWMClass() const noexcept; + // FIXME: // This property should implement with fuse guarded // $XDG_CONFIG_HOME/autostart/. Current implementation has some problems, @@ -163,6 +166,7 @@ Q_SIGNALS: void terminalChanged(); void environChanged(); void launchedTimesChanged(); + void startupWMClassChanged(); private: friend class ApplicationManager1Service;