aboutsummaryrefslogtreecommitdiff
path: root/libindicator/indicator-desktop-shortcuts.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-03-16 11:14:43 -0500
committerTed Gould <ted@gould.cx>2011-03-16 11:14:43 -0500
commitbbae0db4cb7aeeea3a79173a49668de08db8630c (patch)
tree5eebcd07c0191c25f3f29d38bd4361b0cc55afeb /libindicator/indicator-desktop-shortcuts.c
parent12047a58bcc26a3b2073452484cd8add0d8d2969 (diff)
parent690ffa93f9f32b08817cdfad53e61ebab0c405bf (diff)
downloadlibayatana-indicator-bbae0db4cb7aeeea3a79173a49668de08db8630c.tar.gz
libayatana-indicator-bbae0db4cb7aeeea3a79173a49668de08db8630c.tar.bz2
libayatana-indicator-bbae0db4cb7aeeea3a79173a49668de08db8630c.zip
Fix checking for target environment on the desktop group
Diffstat (limited to 'libindicator/indicator-desktop-shortcuts.c')
-rw-r--r--libindicator/indicator-desktop-shortcuts.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c
index 7de4084..5d16cda 100644
--- a/libindicator/indicator-desktop-shortcuts.c
+++ b/libindicator/indicator-desktop-shortcuts.c
@@ -59,7 +59,7 @@ static void indicator_desktop_shortcuts_finalize (GObject *object);
static void set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec);
static void get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec);
static void parse_keyfile (IndicatorDesktopShortcuts * ids);
-static gboolean should_show (GKeyFile * keyfile, const gchar * group, const gchar * identity);
+static gboolean should_show (GKeyFile * keyfile, const gchar * group, const gchar * identity, gboolean should_have_target);
G_DEFINE_TYPE (IndicatorDesktopShortcuts, indicator_desktop_shortcuts, G_TYPE_OBJECT);
@@ -269,12 +269,12 @@ parse_keyfile (IndicatorDesktopShortcuts * ids)
continue;
}
- if (!should_show(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, priv->identity)) {
+ if (!should_show(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, priv->identity, FALSE)) {
g_free(groupname);
continue;
}
- if (!should_show(priv->keyfile, groupname, priv->identity)) {
+ if (!should_show(priv->keyfile, groupname, priv->identity, TRUE)) {
g_free(groupname);
continue;
}
@@ -293,9 +293,9 @@ parse_keyfile (IndicatorDesktopShortcuts * ids)
/* Checks the ONLY_SHOW_IN and NOT_SHOW_IN keys for a group to
see if we should be showing ourselves. */
static gboolean
-should_show (GKeyFile * keyfile, const gchar * group, const gchar * identity)
+should_show (GKeyFile * keyfile, const gchar * group, const gchar * identity, gboolean should_have_target)
{
- if (g_key_file_has_key(keyfile, group, ENVIRON_KEY, NULL)) {
+ if (should_have_target && g_key_file_has_key(keyfile, group, ENVIRON_KEY, NULL)) {
/* If we've got this key, we're going to return here and not
process the deprecated keys. */
gint j;
@@ -317,7 +317,9 @@ should_show (GKeyFile * keyfile, const gchar * group, const gchar * identity)
}
return TRUE;
} else {
- g_warning(GROUP_SUFFIX " does not have key '" ENVIRON_KEY "' falling back to deprecated use of '" G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "' and '" G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "'.");
+ if (should_have_target) {
+ g_warning(GROUP_SUFFIX " does not have key '" ENVIRON_KEY "' falling back to deprecated use of '" G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "' and '" G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "'.");
+ }
}
/* If there is a list of OnlyShowIn entries we need to check