diff -Nru kylin-process-manager-4.10.0.0/debian/changelog kylin-process-manager-4.10.0.0/debian/changelog --- kylin-process-manager-4.10.0.0/debian/changelog 2024-08-21 18:06:12.000000000 +0800 +++ kylin-process-manager-4.10.0.0/debian/changelog 2025-02-27 15:28:54.000000000 +0800 @@ -1,3 +1,12 @@ +kylin-process-manager (4.10.0.0-ok1.34) nile; urgency=medium + + * BUG: #I9IZ13【通知中心】设置通知中关闭截图通知,按下截图仍有通知 + * 需求: 无 + * 其他改动说明: 无 + * 其他改动影响域: 无 + + -- wangweinan <wangweinan@kylinos.cn> Thu, 27 Feb 2025 15:28:54 +0800 + kylin-process-manager (4.10.0.0-ok1.33) nile; urgency=medium * BUG: #IADUHA 系统使用|任务栏分组逻辑有问题 diff -Nru kylin-process-manager-4.10.0.0/debian/patches/0030-debian-update-changelog-to-4.10.0.0-ok1.34.patch kylin-process-manager-4.10.0.0/debian/patches/0030-debian-update-changelog-to-4.10.0.0-ok1.34.patch --- kylin-process-manager-4.10.0.0/debian/patches/0030-debian-update-changelog-to-4.10.0.0-ok1.34.patch 1970-01-01 08:00:00.000000000 +0800 +++ kylin-process-manager-4.10.0.0/debian/patches/0030-debian-update-changelog-to-4.10.0.0-ok1.34.patch 2025-02-27 15:28:54.000000000 +0800 @@ -0,0 +1,131 @@ +From: Wei Wei <wangweinan@kylinos.cn> +Date: Thu, 27 Feb 2025 15:33:56 +0800 +Subject: debian: update changelog to 4.10.0.0-ok1.34 + +--- + core/appinfomanager.h | 2 +- + core/applaunchmanager.cpp | 4 ++++ + core/applaunchmanager.h | 2 ++ + core/desktopfilemanager.cpp | 19 ++++++++++++------- + core/desktopfilemanager.h | 9 +++++++-- + 5 files changed, 26 insertions(+), 10 deletions(-) + +diff --git a/core/appinfomanager.h b/core/appinfomanager.h +index e1a4c8e..f33b5d1 100644 +--- a/core/appinfomanager.h ++++ b/core/appinfomanager.h +@@ -115,7 +115,7 @@ private: + std::map<std::string, unsigned long long> m_appStateChangeTimerIds; + std::map<int, std::string> m_mprisServices; + std::vector<int> m_systemTrayIconApps; +- DesktopFileManager m_desktopFileManager; ++ DesktopFileManager &m_desktopFileManager = DesktopFileManager::instance(); + std::shared_ptr<ConfigManager> m_configManager; + + std::string m_currentActiveWid; +diff --git a/core/applaunchmanager.cpp b/core/applaunchmanager.cpp +index 670d059..adc98d5 100644 +--- a/core/applaunchmanager.cpp ++++ b/core/applaunchmanager.cpp +@@ -89,6 +89,10 @@ QStringList AppLaunchManager::GetAvailableAppListForFile(const QString &fileName + QString AppLaunchManager::GetDesktopFileByPid(int pid) + { + std::string desktopFile = m_processInfoManager.getDesktopFileByPid(pid); ++ // 当前进程可能未受到分级冻结管控 ++ if (desktopFile.empty()) { ++ desktopFile = m_desktopFileManager.syncGetDesktopFileByPid(pid); ++ } + return QString::fromStdString(desktopFile); + } + +diff --git a/core/applaunchmanager.h b/core/applaunchmanager.h +index a16c3cb..860f709 100644 +--- a/core/applaunchmanager.h ++++ b/core/applaunchmanager.h +@@ -23,6 +23,7 @@ + #include "applauncher.h" + #include "appchooser.h" + #include "processinfomanager.h" ++#include "desktopfilemanager.h" + + class AppLaunchManager : public QObject, public QDBusContext + { +@@ -51,6 +52,7 @@ private: + std::unique_ptr<AppLauncher> m_appLauncher; + ProcessInfoManager &m_processInfoManager; + AppChooser m_appChooser; ++ DesktopFileManager &m_desktopFileManager = DesktopFileManager::instance(); + }; + + #endif // APPLAUNCHMANAGER_H +diff --git a/core/desktopfilemanager.cpp b/core/desktopfilemanager.cpp +index 61bc69e..2a829db 100644 +--- a/core/desktopfilemanager.cpp ++++ b/core/desktopfilemanager.cpp +@@ -554,21 +554,26 @@ QString DesktopFileManager::findDesktopFileFromPid(int pid) + return QString(); + } + std::string environFile = "/proc/" + std::to_string(pid) + "/environ"; +- return readGioLaunchEnvironFromFile(environFile); ++ const QString gioDesktopFile = ++ readDesktopFileFromEnviron(environFile, "GIO_LAUNCHED_DESKTOP_FILE="); ++ if (gioDesktopFile.isEmpty()) { ++ return readDesktopFileFromEnviron(environFile, "PANSHI_APP_DESKTOP="); ++ } ++ ++ return gioDesktopFile; + } + +-QString DesktopFileManager::readGioLaunchEnvironFromFile(const std::string &file) +-{ +- std::ifstream processEnvironFile(file); ++QString DesktopFileManager::readDesktopFileFromEnviron( ++ const std::string &environFile, const QString &environName) { ++ std::ifstream processEnvironFile(environFile); + if (!processEnvironFile.is_open()) { + return QString(); + } + std::string line; +- std::string gioLaunchDesktopFileStr = "GIO_LAUNCHED_DESKTOP_FILE="; + while (std::getline(processEnvironFile, line, '\0')) { +- auto pos = line.find(gioLaunchDesktopFileStr); ++ auto pos = line.find(environName.toStdString()); + if (pos != std::string::npos) { +- line.erase(pos, gioLaunchDesktopFileStr.length()); ++ line.erase(pos, environName.length()); + return QString::fromStdString(line); + } + } +diff --git a/core/desktopfilemanager.h b/core/desktopfilemanager.h +index 3adb130..dc3005c 100644 +--- a/core/desktopfilemanager.h ++++ b/core/desktopfilemanager.h +@@ -26,13 +26,18 @@ class DesktopFileManager : public QObject + { + Q_OBJECT + public: +- explicit DesktopFileManager(QObject *parent = nullptr); ++ static DesktopFileManager &instance() { ++ static DesktopFileManager instance; ++ return instance; ++ } + + std::string syncGetDesktopFileByPid(int pid); + std::vector<std::string> desktopFilesWithName(const std::string &desktopName); + //todo: async + + private: ++ explicit DesktopFileManager(QObject *parent = nullptr); ++ + using FindDesktopFilePredicate = std::function<bool (std::tuple<QString, QStringList>)>; + using DesktopExecMap = QMap<QString, std::tuple<QString, QStringList>>; + +@@ -59,7 +64,7 @@ private: + QString bestDesktopFileFromMultDesktopFileLists(const QString &cmdline, const QStringList &desktopFileLists); + QString findDesktopFileByEqualStartArg(const QString &cmdline); + QString findDesktopFileFromPid(int pid); +- QString readGioLaunchEnvironFromFile(const std::string &file); ++ QString readDesktopFileFromEnviron(const std::string &environFile, const QString &environName); + DesktopExecMap standardPathDesktopFileExecMap(); + DesktopExecMap autoStartPathDesktopFileExecMap(); + diff -Nru kylin-process-manager-4.10.0.0/debian/patches/series kylin-process-manager-4.10.0.0/debian/patches/series --- kylin-process-manager-4.10.0.0/debian/patches/series 2024-08-21 18:06:12.000000000 +0800 +++ kylin-process-manager-4.10.0.0/debian/patches/series 2025-02-27 15:28:54.000000000 +0800 @@ -27,3 +27,4 @@ 0027-debian-update-changelog-to-4.10.0.0-ok1.31.patch 0028-build-update-changelog.patch 0029-build-update-changelog.patch +0030-debian-update-changelog-to-4.10.0.0-ok1.34.patch