From b0894d295b2fb7d193cf6447f7cdcd6e0e8bce66 Mon Sep 17 00:00:00 2001 From: Simon Steinbeiss Date: Thu, 9 Apr 2015 01:13:59 +0200 Subject: [PATCH] Never use symbolic icons for the systray and always make sure to have an icon name, even if UPower decides not to return one (Bug #11756) Also, drop an unused variable. --- .../power-manager-plugin/power-manager-button.c | 32 +++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/panel-plugins/power-manager-plugin/power-manager-button.c b/panel-plugins/power-manager-plugin/power-manager-button.c index ef9b2ea..f7acc1f 100644 --- a/panel-plugins/power-manager-plugin/power-manager-button.c +++ b/panel-plugins/power-manager-plugin/power-manager-button.c @@ -363,7 +363,6 @@ power_manager_button_update_device_icon_and_details (PowerManagerButton *button, const gchar *object_path = up_device_get_object_path(device); gchar *details, *icon_name, *upower_icon; GdkPixbuf *pix = NULL; - guint type = 0; XFPM_DEBUG("entering for %s", object_path); @@ -379,25 +378,26 @@ power_manager_button_update_device_icon_and_details (PowerManagerButton *button, /* hack, this depends on XFPM_DEVICE_TYPE_* being in sync with UP_DEVICE_KIND_* */ g_object_get (device, - "kind", &type, "icon-name", &upower_icon, NULL); icon_name = get_device_icon_name (button->priv->upower, device); details = get_device_description (button->priv->upower, device); - if (icon_name) - { - pix = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), - icon_name, - 32, - GTK_ICON_LOOKUP_USE_BUILTIN, - NULL); - g_free (icon_name); - } + /* If UPower doesn't give us an icon, just use the default */ + if (icon_name == NULL) + icon_name = g_strdup (PANEL_DEFAULT_ICON); + if (upower_icon == NULL) + upower_icon = g_strdup (PANEL_DEFAULT_ICON); + + pix = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), + icon_name, + 32, + GTK_ICON_LOOKUP_USE_BUILTIN, + NULL); if (battery_device->details) - g_free (battery_device->details); + g_free (battery_device->details); battery_device->details = details; /* If we had an image before, remove it and the callback */ @@ -412,11 +412,17 @@ power_manager_button_update_device_icon_and_details (PowerManagerButton *button, DBG("this is the display device, updating"); /* it is! update the panel button */ g_free (button->priv->panel_icon_name); - button->priv->panel_icon_name = upower_icon; +#ifdef XFCE_PLUGIN + button->priv->panel_icon_name = g_strdup (upower_icon); +#else + button->priv->panel_icon_name = g_strdup (icon_name); +#endif power_manager_button_set_icon (button); /* update tooltip */ power_manager_button_set_tooltip (button); } + g_free (upower_icon); + g_free (icon_name); /* If the menu is being displayed, update it */ if (button->priv->menu && battery_device->menu_item) -- 2.1.4