Commit Graph

306 Commits

Author SHA1 Message Date
de09f3dbc2 refact: add test-coverage.sh and some docs
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-16 17:54:42 +08:00
c4c1d72568 refact: hidden escaped app id in dbus object path
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
b0c3475a3d fix: correct getXDGDataDirs
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
2fa74e40e5 refact: change implementation of UpdateApplicationInfo
adjust the way of get XDG_DATA_DIRS.

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
5183716873 refact: apply review suggestions
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
bc2bdf559e example: add launch application example
fix some bug while testing the example

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
722d0666d3 feat: add impl of updateApplicationInfo
1. change the way to traverse files
2. refact some code

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
799100436c feat: watch systemd unit new and remove to sync state
add default values to XDG_DATA_DIRS if it dosen't set

Signed-off-by: ComixHe <heyuming@deepin.org>
Signed-off-by: black-desk <me@black-desk.cn>
2023-08-14 13:39:05 +08:00
4687265e65 refact: restructure project
1. adjust project structure;
2. use config.h to locate app-launch-helper binary.
2023-08-07 16:46:57 +08:00
fe284e78b6 feat: implementation of the major feature of dbus service
Log:
Signed-off-by: ComixHe <heyuming@deepin.org>
2023-08-07 16:46:57 +08:00
857db2625a style: format code 2023-07-21 14:50:57 +08:00
5fed3ed9f0 feat: add test for desktopentry and jobmanager
Log:
2023-07-21 14:50:57 +08:00
d288752fb3 feat: finish dbus service: job/jobManager
Log:
2023-07-18 16:37:52 +08:00
3a278bec79 feat: adjust dbus service structure
Log:
2023-07-17 16:20:15 +08:00
6f598ab52b feat: add desktopentry class
Log:
2023-07-14 12:05:35 +08:00
fdf01923db feat: implement job service
Log:
2023-07-12 10:41:41 +08:00
10add2092c feat: init dbus service structure
Log: 初始化dbus服务结构
2023-07-10 13:59:48 +08:00
c10838200b chore: init project structure
Log: 初始化项目结构
2023-07-07 15:44:18 +08:00
235db8ab0c refact: remove almost all files
This is a prepare commit for the following refactor of
dde-application-manager.

I remove almost all files in this git repository.

We will start the refactor in later commits.

Signed-off-by: black-desk <me@black-desk.cn>
2023-07-06 10:05:34 +08:00
02a818b12c fix: fix a use-after-free
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-15 05:08:33 +00:00
d4cb60370e fix: entry->app maybe nullptr, need to judge before use
log: as title
2023-05-12 15:33:55 +08:00
a041aa7cf3 docs: add some comments
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
0ce69c609a revert: b9e5abf remove jemalloc
memory issue has been resolve, jemalloc can be removed

log:
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
38c9c09487 fix: call workfree to void mem leak
Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
a2f91cc525 fix: don't free ptr removed from Entry::m_windowInfoMap
Check comment.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
ad07a96240 fix: use shared_ptr in XCBUtils::getWindowFrameExtents
To void use-after-free issues.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
611bc0e092 fix: refact KeyFile::loadFile
To void invalid memory access issues.

Signed-off-by: black-desk <me@black-desk.cn>
2023-05-12 15:33:55 +08:00
95ca87eebc fix: get wrong prefix of desktop name
We can only get 'org' by baseName() if the desktop file
named org.gnome.Chess.desktop. It should be completeBaseName().

Log:
2023-05-12 02:14:46 +00:00
d3dcd91ca6 fix: add missing header for clang
Clang need these header to be included for definition of uint32_t and
uint64_t.
2023-05-11 06:56:37 +00:00
1fd19ce97d fix: early return in WindowIdentify::identifyWindowByPidEnv
If we cannot get desktop file from env, we should just failed.
2023-05-11 06:33:52 +00:00
b9e5abf214 fix: use jemalloc to temporary circumvention of crash issues
log: as title
2023-05-11 13:05:37 +08:00
3932b3637e refact: Process::getStatus
log: as title
2023-05-11 13:05:37 +08:00
fd6622c30c refact: Process::readFile
Remove DString::splitVectorChars. Use std::getline and fstream.
2023-05-11 13:05:37 +08:00
233cc0db3d fix: error handling recognized args
Recognized args should be removed from exec args when there are no
actual contents. instead of being replaced by "".

Log: fix error handling recognized args
2023-04-28 16:09:00 +08:00
8be4c11b1c fix: arg[0] should be program exe
QProcess::arguments do not contain arg[0].

Signed-off-by: black-desk <me@black-desk.cn>
2023-04-23 10:14:51 +00:00
c043b392c7 fix: 退出没有图标的应用AM崩溃
使用xcb ewmh的相关接口获取应用icon

Log: 修复没有图标的应用退出时AM奔溃退出的问题
Influence: 任务栏应用图标正常显示
2023-04-23 17:55:31 +08:00
dc617910fb fix GIO_LAUNCHED_DESKTOP_FILE_PID (#30)
* fix: set GIO_LAUNCHED_DESKTOP_FILE_PID

To set GIO_LAUNCHED_DESKTOP_FILE_PID, we have to manually fork and
exec, as QT determined the environ use to execvp, before running
childModifyer.

After use bare fork and exec, we have to wait for dead child processes.
Otherwise there will be zombies.

Signed-off-by: black-desk <me@black-desk.cn>

* fix: X-Deepin-CreatedBy is key not value

-

Signed-off-by: black-desk <me@black-desk.cn>

---------

Signed-off-by: black-desk <me@black-desk.cn>
2023-04-22 17:29:10 +08:00
63d9f4ed57 fix: set DEEPIN_WINE_SCALE on launch an application (#36)
Supported HiDPI for the deepin wine applications. We must give an env
variant to apply the window scale effect to it.
2023-04-22 15:37:00 +08:00
b0383d43da fix: 任务栏最近使用任务区域残留锯齿图标应用
部分修复了两种场景:
- 无法点击图标打开的锯齿应用在系统启动时残留在最近任务栏(如Deepin-Lock)
- 锯齿图标应用被关闭后,残留在最近任务栏.(如dde-dconfig-editor)

当前存在问题:
第二种情况在锯齿应用被移除时,任务栏会闪一下.

Issue: https://github.com/linuxdeepin/developer-center/issues/3788
Log: 任务栏最近使用任务区域残留锯齿图标应用
2023-04-22 12:02:40 +08:00
2031f59203 chore: don't initialize the default applications
Moved to linuxdeepin/default-settings#30
2023-04-21 16:41:49 +08:00
aa2edda67a fix: don't use bamf on wayland session (#31)
The bamfdaemon is needs X server, it's crash on XWayland.
2023-04-20 18:03:24 +08:00
94aa8b835e fix: 修改了process.start函数参数的问题
修改了将参数以字符串拼接形式传入process.start中的问题,避免了命令注入。

Log: 修改了process.start函数参数的问题
2023-04-18 03:26:41 +00:00
cf09c97e46 chore: log envs in launch
-
2023-04-17 10:09:14 +00:00
1969ce63d1 fix: set GIO_LAUNCHED_DESKTOP_FILE when launch app
-
2023-04-17 10:09:14 +00:00
58c5f4feb8 fix: use identifyWindowByPidEnv for linglong apps
-
2023-04-17 10:09:14 +00:00
5f9beaa1c2 refact: use lambda in identifyWindowByPidEnv
-
2023-04-17 10:09:14 +00:00
4e43ef0cdb refact: return early in identifyWindowByPidEnv
-
2023-04-17 10:09:14 +00:00
010d0c40f6 fix: force windowidentify method order
-
2023-04-17 10:09:14 +00:00
29e7ef2f00 fix: use XResQueryClientIds to get pid of xwindow
Code copy from https://gitlab.gnome.org/GNOME/metacity/-/merge_requests/13/diffs

The xprop `_NET_WM_PID` is set by the client side, even if the process
in running in some container. But when pid_ns is unshared, the processes
in side a container, will not be able to get the "right" pid of itself.

The "new" XResQueryClientIds added to XRes will fix this issue by
produce the pid in server side.

refs:

- https://gitlab.freedesktop.org/xorg/xserver/-/issues/1022#note_497597
- https://www.x.org/releases/X11R7.7/doc/resourceproto/resproto.txt

close linuxdeepin/developer-center#3802
2023-04-17 10:09:14 +00:00
9b82262a4e fix: desktop file still in Desktop after uninstall
AM will emit a signal which named UninstallSuccess when we
click launcher to uninstall the app of linglong. Then launcher
request item data after listen this signal and it will call AM
to refresh the data map. This make AM think the desktop item has
been removed when the fs notify event arrive, which cause AM
won't remove the desktop file.
So we just do removeDesktop() before emit the signal.

Log:
2023-04-12 17:16:30 +08:00