Refresh the battery state before we query it on Linux

This commit is contained in:
Sam Lantinga 2022-01-31 17:01:08 -08:00
parent 0b34f18045
commit ec8e3104c8
1 changed files with 2 additions and 0 deletions
src/power/linux

View File

@ -565,6 +565,8 @@ check_upower_device(DBusConnection *conn, const char *path, SDL_PowerState *stat
return;
} else if (!ui32) {
st = SDL_POWERSTATE_NO_BATTERY;
} else if (!SDL_DBus_CallMethodOnConnection(conn, UPOWER_DBUS_NODE, path, UPOWER_DEVICE_DBUS_INTERFACE, "Refresh", DBUS_TYPE_INVALID)) {
return;
} else if (!SDL_DBus_QueryPropertyOnConnection(conn, UPOWER_DBUS_NODE, path, UPOWER_DEVICE_DBUS_INTERFACE, "State", DBUS_TYPE_UINT32, &ui32)) {
st = SDL_POWERSTATE_UNKNOWN; /* uh oh */
} else if (ui32 == 1) { /* 1 == charging */