void X11_SuspendScreenSaver(_THIS) { #if SDL_VIDEO_DRIVER_X11_SCRNSAVER SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; int dummy; int major_version, minor_version; if (SDL_X11_HAVE_XSS) { /* XScreenSaverSuspend was introduced in MIT-SCREEN-SAVER 1.1 */ if (!XScreenSaverQueryExtension(data->display, &dummy, &dummy) || !XScreenSaverQueryVersion(data->display, &major_version, &minor_version) || major_version < 1 || (major_version == 1 && minor_version < 1)) { return; } XScreenSaverSuspend(data->display, _this->suspend_screensaver); XResetScreenSaver(data->display); } #endif #ifdef GNOME_SCREENSAVER_HACK if (_this->suspend_screensaver) { gnome_screensaver_disable(); } else { gnome_screensaver_enable(); } #endif }
void X11_SuspendScreenSaver(_THIS) { #if SDL_VIDEO_DRIVER_X11_XSCRNSAVER SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; int dummy; int major_version, minor_version; if (SDL_X11_HAVE_XSS) { /* XScreenSaverSuspend was introduced in MIT-SCREEN-SAVER 1.1 */ if (!XScreenSaverQueryExtension(data->display, &dummy, &dummy) || !XScreenSaverQueryVersion(data->display, &major_version, &minor_version) || major_version < 1 || (major_version == 1 && minor_version < 1)) { return; } XScreenSaverSuspend(data->display, _this->suspend_screensaver); XResetScreenSaver(data->display); } #endif #if SDL_USE_LIBDBUS if (_this->suspend_screensaver) { SDL_dbus_screensaver_tickle(_this); } #endif }
long Tk_GetUserInactiveTime( Display *dpy) /* The display for which to query the inactive * time. */ { long inactiveTime = -1; #ifdef HAVE_XSS int eventBase, errorBase, major, minor; /* * Calling XScreenSaverQueryVersion seems to be needed to prevent a crash * on some buggy versions of XFree86. */ if (HaveXSSLibrary() && XScreenSaverQueryExtension(dpy, &eventBase, &errorBase) && XScreenSaverQueryVersion(dpy, &major, &minor)) { XScreenSaverInfo *info = XScreenSaverAllocInfo(); if (info == NULL) { /* * We are out of memory. */ Tcl_Panic("Out of memory: XScreenSaverAllocInfo failed in Tk_GetUserInactiveTime"); } if (XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info)) { inactiveTime = info->idle; } XFree(info); } #endif /* HAVE_XSS */ return inactiveTime; }
EAPI Eina_Bool ecore_x_screensaver_event_available_get(void) { if (_screensaver_available >= 0) return _screensaver_available; #ifdef ECORE_XSS int _screensaver_major, _screensaver_minor; LOGFN(__FILE__, __LINE__, __FUNCTION__); _screensaver_major = 1; _screensaver_minor = 0; if (XScreenSaverQueryVersion(_ecore_x_disp, &_screensaver_major, &_screensaver_minor)) _screensaver_available = 1; else _screensaver_available = 0; #else /* ifdef ECORE_XSS */ _screensaver_available = 0; #endif /* ifdef ECORE_XSS */ return _screensaver_available; }