summaryrefslogtreecommitdiff
path: root/src/xdp-utils.c
diff options
context:
space:
mode:
authorJames Henstridge <james@jamesh.id.au>2020-03-23 16:26:15 +0800
committerAlexander Larsson <alexander.larsson@gmail.com>2020-11-19 12:06:15 +0100
commit389ae69cc7ec27f2e78336b9d5c65b78bf1ee096 (patch)
tree63b1597e6e1618e728fd28ca34caeda1c8267370 /src/xdp-utils.c
parent804ace27427f770f3087343aaa1f69958b3c2dd3 (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.c23
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));
}