summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/linux/hidpp-device.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/linux/hidpp-device.c b/src/linux/hidpp-device.c
index c6d9fbe..24a095c 100644
--- a/src/linux/hidpp-device.c
+++ b/src/linux/hidpp-device.c
@@ -973,12 +973,17 @@ hidpp_device_refresh (HidppDevice *device,
priv->batt_status = HIDPP_DEVICE_BATT_STATUS_CHARGING;
break;
case 3: /* charging complete */
+ priv->batt_percentage = 100;
priv->batt_status = HIDPP_DEVICE_BATT_STATUS_CHARGED;
break;
default:
break;
}
- priv->batt_percentage = msg.s.params[0];
+
+ /* do not overwrite battery status with 0 (unknown) */
+ if (msg.s.params[0] != 0)
+ priv->batt_percentage = msg.s.params[0];
+
g_debug ("level=%i%%, next-level=%i%%, battery-status=%i",
msg.s.params[0], msg.s.params[1], msg.s.params[2]);
}