power: Use more fine-grained battery levels

Adwaita-icon-theme added new battery icons which represent battery levels
in 10% steps[0]. Use these if they are available, otherwise fall back to
the existing icon names for compatibility with older icon themes.

[0] https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues/6

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/561
This commit is contained in:
Florian Müllner 2019-05-28 17:56:36 +00:00
parent 2ff7a78b56
commit bd18313d12

View File

@ -107,10 +107,20 @@ var Indicator = class extends PanelMenu.SystemIndicator {
} }
// The icons // The icons
let icon = this._proxy.IconName; let chargingState = this._proxy.State == UPower.DeviceState.CHARGING
? '-charging' : '';
let fillLevel = 10 * Math.floor(this._proxy.Percentage / 10);
let icon = this._proxy.State == UPower.DeviceState.FULLY_CHARGED
? 'battery-level-100-charged-symbolic'
: `battery-level-${fillLevel}${chargingState}-symbolic`;
this._indicator.icon_name = icon; this._indicator.icon_name = icon;
this._item.icon.icon_name = icon; this._item.icon.icon_name = icon;
let fallbackIcon = this._proxy.IconName;
this._indicator.fallback_icon_name = fallbackIcon;
this._item.icon.fallback_icon_name = fallbackIcon;
// The icon label // The icon label
let label; let label;
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED) if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)