[AD] A new patch [Fix (complete) al_inhibit_screensaver function]

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


From 5ddd16d9c6af25efbdfd90a2fdc0e8d4c63e94e8 Mon Sep 17 00:00:00 2001
From: RmBeer <rmbeer2@xxxxxxxxx>
Date: Mon, 29 Apr 2019 16:29:18 -0300
Subject: [PATCH 1/1] Fix (complete) al_inhibit_screensaver function

---
 src/x/xsystem.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/x/xsystem.c b/src/x/xsystem.c
index 824ca7aac..4c4d048f4 100644
--- a/src/x/xsystem.c
+++ b/src/x/xsystem.c
@@ -354,6 +354,14 @@ static bool xglx_get_cursor_position(int *ret_x, int *ret_y)
 static bool xglx_inhibit_screensaver(bool inhibit)
 {
    ALLEGRO_SYSTEM_XGLX *system = (void *)al_get_system_driver();
+   int temp, temp_version_min, temp_version_max;
+
+   if (!XScreenSaverQueryExtension(system->x11display, &temp, &temp) ||
+      !XScreenSaverQueryVersion(system->x11display, &temp_version_max, &temp_version_min) ||
+      temp_version_max < 1 || (temp_version_max == 1 && temp_version_min < 1)) {
+      return false;
+   }
+   XScreenSaverSuspend(system->x11display, inhibit);
 
    system->inhibit_screensaver = inhibit;
    return true;
-- 
2.21.0



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/