summaryrefslogtreecommitdiff
path: root/pidgin/gtkidle.c
diff options
context:
space:
mode:
authorRichard Laager <rlaager@pidgin.im>2007-05-14 03:05:27 +0000
committerRichard Laager <rlaager@pidgin.im>2007-05-14 03:05:27 +0000
commit0d9783e8cbf845cb398cfe109d2cb1aa7fe54fb5 (patch)
treebf540f9de39fbf9730fe8c0af24041c906d0df93 /pidgin/gtkidle.c
parent2ec55c7b3c6733aae139964b8637c6b7a29f0aba (diff)
downloadpidgin-0d9783e8cbf845cb398cfe109d2cb1aa7fe54fb5.tar.gz
Part of a patch from:
http://www.linuxpowertop.org/known.php#gaim " ...will also ask the X server every 5 seconds if the X server supports the X screensaver extension.... the X server either supports or doesn't support this, this isn't changing after starting the application."
Diffstat (limited to 'pidgin/gtkidle.c')
-rw-r--r--pidgin/gtkidle.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/pidgin/gtkidle.c b/pidgin/gtkidle.c
index 88ff241cda..ed9129790c 100644
--- a/pidgin/gtkidle.c
+++ b/pidgin/gtkidle.c
@@ -103,14 +103,21 @@ pidgin_get_time_idle()
/* Query xscreensaver */
static XScreenSaverInfo *mit_info = NULL;
+ static int has_extension = -1;
int event_base, error_base;
- if (XScreenSaverQueryExtension(GDK_DISPLAY(), &event_base, &error_base)) {
- if (mit_info == NULL) {
+
+ if (has_extension == -1)
+ has_extension = XScreenSaverQueryExtension(GDK_DISPLAY(), &event_base, &error_base);
+
+ if (has_extension)
+ {
+ if (mit_info == NULL)
mit_info = XScreenSaverAllocInfo();
- }
+
XScreenSaverQueryInfo(GDK_DISPLAY(), GDK_ROOT_WINDOW(), mit_info);
return (mit_info->idle) / 1000;
- } else
+ }
+ else
return 0;
# endif /* !_WIN32 */
# endif /* !HAVE_IOKIT */