diff options
author | Krzysztof Klimonda <kklimonda@syntaxhighlighted.com> | 2010-03-22 18:07:32 +0100 |
---|---|---|
committer | Krzysztof Klimonda <kklimonda@syntaxhighlighted.com> | 2010-03-22 18:07:32 +0100 |
commit | 85400dc1f4b95227f9160b96e30841e1e90ee60a (patch) | |
tree | 6487b30f2992c8f698555b69c4d7cc88d8250f0f | |
parent | c80fe4d00d01c4498771c79419aa3c54567a1eec (diff) | |
download | libayatana-appindicator-85400dc1f4b95227f9160b96e30841e1e90ee60a.tar.gz libayatana-appindicator-85400dc1f4b95227f9160b96e30841e1e90ee60a.tar.bz2 libayatana-appindicator-85400dc1f4b95227f9160b96e30841e1e90ee60a.zip |
Use app_indicator_get_icon/app_indicator_get_attention_icon methods to get
the right icon.
-rw-r--r-- | src/libappindicator/app-indicator.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 43475fb..38f095f 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -861,26 +861,33 @@ static void status_icon_changes (AppIndicator * self, gpointer data) { GtkStatusIcon * icon = GTK_STATUS_ICON(data); - GIcon *themed_icon = - g_themed_icon_new_with_default_fallbacks (self->priv->icon_name); + GIcon *themed_icon = NULL; switch (app_indicator_get_status(self)) { case APP_INDICATOR_STATUS_PASSIVE: + themed_icon = + g_themed_icon_new_with_default_fallbacks (app_indicator_get_icon (self)); gtk_status_icon_set_visible(icon, FALSE); - gtk_status_icon_set_from_gicon(icon, G_ICON (themed_icon)); + gtk_status_icon_set_from_gicon(icon, themed_icon); break; case APP_INDICATOR_STATUS_ACTIVE: - gtk_status_icon_set_from_gicon(icon, G_ICON (themed_icon)); + themed_icon = + g_themed_icon_new_with_default_fallbacks (app_indicator_get_icon (self)); + gtk_status_icon_set_from_gicon(icon, themed_icon); gtk_status_icon_set_visible(icon, TRUE); break; case APP_INDICATOR_STATUS_ATTENTION: - gtk_status_icon_set_from_gicon(icon, G_ICON (themed_icon)); + themed_icon = + g_themed_icon_new_with_default_fallbacks (app_indicator_get_attention_icon (self)); + gtk_status_icon_set_from_gicon(icon, themed_icon); gtk_status_icon_set_visible(icon, TRUE); break; }; - g_object_ref_sink (themed_icon); - g_object_unref (themed_icon); + if (themed_icon) { + g_object_ref_sink (themed_icon); + g_object_unref (themed_icon); + } return; } |