diff options
author | Richard Laager <rlaager@pidgin.im> | 2007-05-14 03:05:27 +0000 |
---|---|---|
committer | Richard Laager <rlaager@pidgin.im> | 2007-05-14 03:05:27 +0000 |
commit | 0d9783e8cbf845cb398cfe109d2cb1aa7fe54fb5 (patch) | |
tree | bf540f9de39fbf9730fe8c0af24041c906d0df93 /pidgin/gtkidle.c | |
parent | 2ec55c7b3c6733aae139964b8637c6b7a29f0aba (diff) | |
download | pidgin-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.c | 15 |
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 */ |