7 #endif /* ifdef HAVE_CONFIG_H */
10 #include "ecore_x_private.h"
12 #include "Ecore_X_Atoms.h"
14 static int _screensaver_available = -1;
17 ecore_x_screensaver_event_available_get(void)
19 if (_screensaver_available >= 0)
20 return _screensaver_available;
23 int _screensaver_major, _screensaver_minor;
25 LOGFN(__FILE__, __LINE__, __FUNCTION__);
26 _screensaver_major = 1;
27 _screensaver_minor = 0;
29 if (XScreenSaverQueryVersion(_ecore_x_disp, &_screensaver_major,
31 _screensaver_available = 1;
33 _screensaver_available = 0;
35 #else /* ifdef ECORE_XSS */
36 _screensaver_available = 0;
37 #endif /* ifdef ECORE_XSS */
38 return _screensaver_available;
42 ecore_x_screensaver_idle_time_get(void)
45 XScreenSaverInfo *xss;
48 LOGFN(__FILE__, __LINE__, __FUNCTION__);
49 xss = XScreenSaverAllocInfo();
50 XScreenSaverQueryInfo(_ecore_x_disp,
51 RootWindow(_ecore_x_disp, DefaultScreen(
52 _ecore_x_disp)), xss);
53 idle = xss->idle / 1000;
59 #endif /* ifdef ECORE_XSS */
63 ecore_x_screensaver_set(int timeout,
68 LOGFN(__FILE__, __LINE__, __FUNCTION__);
69 XSetScreenSaver(_ecore_x_disp,
77 ecore_x_screensaver_timeout_set(int timeout)
79 int pto, pint, pblank, pexpo;
81 LOGFN(__FILE__, __LINE__, __FUNCTION__);
82 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
83 XSetScreenSaver(_ecore_x_disp, timeout, pint, pblank, pexpo);
87 ecore_x_screensaver_timeout_get(void)
89 int pto, pint, pblank, pexpo;
91 LOGFN(__FILE__, __LINE__, __FUNCTION__);
92 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
97 ecore_x_screensaver_blank_set(int blank)
99 int pto, pint, pblank, pexpo;
101 LOGFN(__FILE__, __LINE__, __FUNCTION__);
102 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
103 XSetScreenSaver(_ecore_x_disp, pto, pint, blank, pexpo);
107 ecore_x_screensaver_blank_get(void)
109 int pto, pint, pblank, pexpo;
111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
112 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
117 ecore_x_screensaver_expose_set(int expose)
119 int pto, pint, pblank, pexpo;
121 LOGFN(__FILE__, __LINE__, __FUNCTION__);
122 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
123 XSetScreenSaver(_ecore_x_disp, pto, pint, pblank, expose);
127 ecore_x_screensaver_expose_get(void)
129 int pto, pint, pblank, pexpo;
131 LOGFN(__FILE__, __LINE__, __FUNCTION__);
132 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
137 ecore_x_screensaver_interval_set(int interval)
139 int pto, pint, pblank, pexpo;
141 LOGFN(__FILE__, __LINE__, __FUNCTION__);
142 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
143 XSetScreenSaver(_ecore_x_disp, pto, interval, pblank, pexpo);
147 ecore_x_screensaver_interval_get(void)
149 int pto, pint, pblank, pexpo;
151 LOGFN(__FILE__, __LINE__, __FUNCTION__);
152 XGetScreenSaver(_ecore_x_disp, &pto, &pint, &pblank, &pexpo);
157 ecore_x_screensaver_event_listen_set(Eina_Bool on)
162 LOGFN(__FILE__, __LINE__, __FUNCTION__);
163 root = DefaultRootWindow(_ecore_x_disp);
165 XScreenSaverSelectInput(_ecore_x_disp, root,
166 ScreenSaverNotifyMask | ScreenSaverCycle);
168 XScreenSaverSelectInput(_ecore_x_disp, root, 0);
172 #endif /* ifdef ECORE_XSS */
177 ecore_x_screensaver_custom_blanking_enable(void)
180 XSetWindowAttributes attr;
182 XScreenSaverSetAttributes(_ecore_x_disp,
183 DefaultRootWindow(_ecore_x_disp),
184 -9999, -9999, 1, 1, 0,
185 CopyFromParent, InputOnly, CopyFromParent,
190 #endif /* ifdef ECORE_XSS */
194 ecore_x_screensaver_custom_blanking_disable(void)
197 XScreenSaverUnsetAttributes(_ecore_x_disp,
198 DefaultRootWindow(_ecore_x_disp));
202 #endif /* ifdef ECORE_XSS */