diff options
author | James Henstridge <james@jamesh.id.au> | 2020-03-23 16:26:15 +0800 |
---|---|---|
committer | Alexander Larsson <alexander.larsson@gmail.com> | 2020-11-19 12:06:15 +0100 |
commit | 389ae69cc7ec27f2e78336b9d5c65b78bf1ee096 (patch) | |
tree | 63b1597e6e1618e728fd28ca34caeda1c8267370 /src/xdp-utils.c | |
parent | 804ace27427f770f3087343aaa1f69958b3c2dd3 (diff) |
Make xdp_app_info_load_app_info() load correct desktop file for snaps
Diffstat (limited to 'src/xdp-utils.c')
-rw-r--r-- | src/xdp-utils.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/xdp-utils.c b/src/xdp-utils.c index be7aa94..b45eec5 100644 --- a/src/xdp-utils.c +++ b/src/xdp-utils.c @@ -207,10 +207,27 @@ xdp_app_info_load_app_info (XdpAppInfo *app_info) g_return_val_if_fail (app_info != NULL, NULL); - if (app_info->id[0] == '\0') - return NULL; + switch (app_info->kind) + { + case XDP_APP_INFO_KIND_FLATPAK: + desktop_id = g_strconcat (app_info->id, ".desktop", NULL); + break; + + case XDP_APP_INFO_KIND_SNAP: + desktop_id = g_key_file_get_string (app_info->u.snap.keyfile, + SNAP_METADATA_GROUP_INFO, + SNAP_METADATA_KEY_DESKTOP_FILE, + NULL); + break; - desktop_id = g_strconcat (app_info->id, ".desktop", NULL); + case XDP_APP_INFO_KIND_HOST: + default: + desktop_id = NULL; + break; + } + + if (desktop_id == NULL) + return NULL; return G_APP_INFO (g_desktop_app_info_new (desktop_id)); } |