SDL: Refresh the battery state before we query it on Linux

From ec8e3104c8232be0381a91dbcd4d71668bdd6f6f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 31 Jan 2022 17:01:08 -0800
Subject: [PATCH] Refresh the battery state before we query it on Linux

---
 src/power/linux/SDL_syspower.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/power/linux/SDL_syspower.c b/src/power/linux/SDL_syspower.c
index 3b9ab1ba911..92a66ba97b4 100644
--- a/src/power/linux/SDL_syspower.c
+++ b/src/power/linux/SDL_syspower.c
@@ -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 */