1
1
/* xset.c --- interacting with server extensions and the builtin screensaver.
2
* xscreensaver, Copyright (c) 1991-2005 Jamie Zawinski <jwz@jwz.org>
2
* xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski <jwz@jwz.org>
4
4
* Permission to use, copy, modify, distribute, and sell this software and its
5
5
* documentation for any purpose is hereby granted without fee, provided that
43
43
# include <X11/extensions/scrnsaver.h>
46
query_mit_saver_extension (saver_info *si)
48
return XScreenSaverQueryExtension (si->dpy,
49
&si->mit_saver_ext_event_number,
50
&si->mit_saver_ext_error_number);
54
46
ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error)
102
94
# include <X11/extensions/XScreenSaver.h>
105
query_sgi_saver_extension (saver_info *si)
107
return XScreenSaverQueryExtension (si->dpy,
108
&si->sgi_saver_ext_event_number,
109
&si->sgi_saver_ext_error_number);
113
97
init_sgi_saver_extension (saver_info *si)
138
122
#endif /* HAVE_SGI_SAVER_EXTENSION */
141
/* XIDLE server extension hackery.
144
#ifdef HAVE_XIDLE_EXTENSION
146
# include <X11/extensions/xidle.h>
149
query_xidle_extension (saver_info *si)
153
return XidleQueryExtension (si->dpy, &event_number, &error_number);
156
#endif /* HAVE_XIDLE_EXTENSION */
160
/* Resize and Rotate server extension hackery.
165
# include <X11/extensions/Xrandr.h>
168
query_randr_extension (saver_info *si)
170
saver_preferences *p = &si->prefs;
171
Bool ok = XRRQueryExtension (si->dpy,
172
&si->randr_event_number,
173
&si->randr_error_number);
177
int nscreens = ScreenCount (si->dpy); /* number of *real* screens */
181
fprintf (stderr, "%s: selecting RANDR events\n", blurb());
182
for (i = 0; i < nscreens; i++)
183
# ifdef RRScreenChangeNotifyMask /* randr.h 1.5, 2002/09/29 */
184
XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
185
RRScreenChangeNotifyMask);
186
# else /* !RRScreenChangeNotifyMask */ /* Xrandr.h 1.4, 2001/06/07 */
187
XRRScreenChangeSelectInput (si->dpy, RootWindow (si->dpy, i), True);
188
# endif /* !RRScreenChangeNotifyMask */
194
#endif /* HAVE_RANDR */
198
126
/* Figuring out what the appropriate XSetScreenSaver() parameters are