summaryrefslogtreecommitdiff
path: root/mate-panel/libmate-panel-applet-private
diff options
context:
space:
mode:
authorWilliam Wold <[email protected]>2019-06-18 05:57:35 +0000
committerraveit65 <[email protected]>2019-06-20 08:15:12 +0200
commit17b300a83857eeed10c14b4c1ec1bb0b9ccb5ff2 (patch)
tree5bb4182424fe04c65d915c01d1871c93a248eca7 /mate-panel/libmate-panel-applet-private
parentd6f085fe853cedcf612c0b4a8b3a40585414dfa4 (diff)
downloadmate-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')
-rw-r--r--mate-panel/libmate-panel-applet-private/panel-applets-manager-dbus.c32
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;
}