diff options
author | William Wold <[email protected]> | 2019-06-18 05:57:35 +0000 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-20 08:15:12 +0200 |
commit | 17b300a83857eeed10c14b4c1ec1bb0b9ccb5ff2 (patch) | |
tree | 5bb4182424fe04c65d915c01d1871c93a248eca7 /mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c | |
parent | d6f085fe853cedcf612c0b4a8b3a40585414dfa4 (diff) | |
download | mate-panel-17b300a83857eeed10c14b4c1ec1bb0b9ccb5ff2.tar.bz2 mate-panel-17b300a83857eeed10c14b4c1ec1bb0b9ccb5ff2.tar.xz |
Load and store what platforms applets support
Diffstat (limited to 'mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c')
-rw-r--r-- | mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c b/mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c index e0aacc0b..496190b7 100644 --- a/mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c +++ b/mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c @@ -97,6 +97,9 @@ _mate_panel_applets_manager_get_applet_info (GKeyFile *applet_file, char *comment; char *icon; char **old_ids; + char **supported_platforms; + gboolean x11_supported; + gboolean wayland_supported; iid = g_strdup_printf ("%s::%s", factory_id, group); name = g_key_file_get_locale_string (applet_file, group, @@ -108,13 +111,40 @@ _mate_panel_applets_manager_get_applet_info (GKeyFile *applet_file, old_ids = g_key_file_get_string_list (applet_file, group, "MateComponentId", NULL, NULL); - info = mate_panel_applet_info_new (iid, name, comment, icon, (const char **) old_ids); + supported_platforms = g_key_file_get_string_list (applet_file, group, + "Platforms", NULL, NULL); + if (supported_platforms == NULL) { + // If supported platforms are not specified, assume all are supported + x11_supported = TRUE; + wayland_supported = TRUE; + } else { + int len, i; + + x11_supported = FALSE; + wayland_supported = FALSE; + len = g_strv_length ((gchar **) supported_platforms); + for (i = 0; i < len; i++) { + if (g_strcmp0 (supported_platforms[i], "X11") == 0) { + x11_supported = TRUE; + } else if (g_strcmp0 (supported_platforms[i], "Wayland") == 0) { + wayland_supported = TRUE; + } else { + g_warning ("Unknown platform in %s applet: %s. " + "Valid platforms are X11 and Wayland", + name, supported_platforms[i]); + } + } + } + + info = mate_panel_applet_info_new (iid, name, comment, icon, (const char **) old_ids, + x11_supported, wayland_supported); g_free (iid); g_free (name); g_free (comment); g_free (icon); g_strfreev (old_ids); + g_strfreev (supported_platforms); return info; } |