From b11626cfd5e4efa757487bf69eefb5090634514d Mon Sep 17 00:00:00 2001 From: Simon Steinbeiss Date: Thu, 9 Apr 2015 00:25:22 +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) --- .../power-manager-plugin/power-manager-button.c | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 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..930eee0 100644 --- a/panel-plugins/power-manager-plugin/power-manager-button.c +++ b/panel-plugins/power-manager-plugin/power-manager-button.c @@ -386,18 +386,18 @@ power_manager_button_update_device_icon_and_details (PowerManagerButton *button, 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); + + 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,16 @@ 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); +#ifdef XFCE_PLUGIN button->priv->panel_icon_name = upower_icon; +#else + button->priv->panel_icon_name = icon_name; +#endif power_manager_button_set_icon (button); /* update tooltip */ power_manager_button_set_tooltip (button); } + g_free (icon_name); /* If the menu is being displayed, update it */ if (button->priv->menu && battery_device->menu_item) -- 2.1.4