Commit 4ca3bd3d authored by Sam Lantinga's avatar Sam Lantinga

Added an API to enable/disable the screen saver.

The screensaver is disabled by default when using SDL 1.2 compatibility.
Use the new XScreenSaver extension, removed unused DPMS extension.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403487
parent 4bb83c1f
...@@ -1020,6 +1020,7 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma ...@@ -1020,6 +1020,7 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma
xrender_lib='/usr/X11R6/lib/libXrender.1.dylib' xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib' xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
xinput_lib='/usr/X11R6/lib/libXi.6.dylib' xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
xss_lib='/usr/X11R6/lib/libXss.6.dylib'
;; ;;
*-*-osf*) *-*-osf*)
x11_lib='libX11.so' x11_lib='libX11.so'
...@@ -1062,6 +1063,12 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma ...@@ -1062,6 +1063,12 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma
xinput_lib=[`ls -- $path/libXi.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`] xinput_lib=[`ls -- $path/libXi.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
fi fi
fi fi
if test "x$xss_lib" = "x"; then
xss_lib=[`ls -- $path/libXss.so.[0-9] 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
if test "x$xss_lib" = "x"; then
xss_lib=[`ls -- $path/libXss.so.[0-9]* 2>/dev/null | sort -r | sed 's/.*\/\(.*\)/\1/; q'`]
fi
fi
done done
;; ;;
esac esac
...@@ -1124,13 +1131,6 @@ AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[def ...@@ -1124,13 +1131,6 @@ AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[def
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA) AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA)
SOURCES="$SOURCES $srcdir/src/video/Xext/Xinerama/*.c" SOURCES="$SOURCES $srcdir/src/video/Xext/Xinerama/*.c"
fi fi
AC_ARG_ENABLE(video-x11-xme,
AC_HELP_STRING([--enable-video-x11-xme], [enable Xi Graphics XME for fullscreen [[default=yes]]]),
, enable_video_x11_xme=yes)
if test x$enable_video_x11_xme = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XME)
SOURCES="$SOURCES $srcdir/src/video/Xext/XME/*.c"
fi
AC_ARG_ENABLE(video-x11-xrandr, AC_ARG_ENABLE(video-x11-xrandr,
AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]), AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
, enable_video_x11_xrandr=yes) , enable_video_x11_xrandr=yes)
...@@ -1188,19 +1188,32 @@ AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for man ...@@ -1188,19 +1188,32 @@ AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for man
if test x$definitely_enable_video_x11_xinput = xyes; then if test x$definitely_enable_video_x11_xinput = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT) AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT)
fi fi
AC_ARG_ENABLE(video-x11-dpms, AC_ARG_ENABLE(video-x11-scrnsaver,
AC_HELP_STRING([--enable-video-x11-dpms], [enable X11 DPMS extension [[default=yes]]]), AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
, enable_video_x11_dpms=yes) , enable_video_x11_scrnsaver=yes)
if test x$enable_video_x11_dpms = xyes; then if test x$enable_video_x11_scrnsaver = xyes; then
AC_CHECK_HEADER(X11/extensions/dpms.h, AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
have_dpms_h_hdr=yes, have_scrnsaver_h_hdr=yes,
have_dpms_h_hdr=no, have_scrnsaver_h_hdr=no,
[#include <X11/Xlib.h> [#include <X11/Xlib.h>
]) ])
if test x$have_dpms_h_hdr = xyes; then if test x$have_scrnsaver_h_hdr = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_DPMS) if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
echo "-- dynamic libXss -> $xss_lib"
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib")
definitely_enable_video_x11_scrnsaver=yes
else
AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
if test x$have_xss_lib = xyes ; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
definitely_enable_video_x11_scrnsaver=yes
fi
fi
fi fi
fi fi
if test x$definitely_enable_video_x11_scrnsaver = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_SCRNSAVER)
fi
AC_ARG_ENABLE(render-x11, AC_ARG_ENABLE(render-x11,
AC_HELP_STRING([--enable-render-x11], [enable the X11 render driver [[default=yes]]]), AC_HELP_STRING([--enable-render-x11], [enable the X11 render driver [[default=yes]]]),
......
...@@ -291,17 +291,17 @@ ...@@ -291,17 +291,17 @@
#undef SDL_VIDEO_DRIVER_WIN32 #undef SDL_VIDEO_DRIVER_WIN32
#undef SDL_VIDEO_DRIVER_WSCONS #undef SDL_VIDEO_DRIVER_WSCONS
#undef SDL_VIDEO_DRIVER_X11 #undef SDL_VIDEO_DRIVER_X11
#undef SDL_VIDEO_DRIVER_X11_DPMS
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
#undef SDL_VIDEO_DRIVER_X11_VIDMODE #undef SDL_VIDEO_DRIVER_X11_VIDMODE
#undef SDL_VIDEO_DRIVER_X11_XINERAMA #undef SDL_VIDEO_DRIVER_X11_XINERAMA
#undef SDL_VIDEO_DRIVER_X11_XME
#undef SDL_VIDEO_DRIVER_X11_XRANDR #undef SDL_VIDEO_DRIVER_X11_XRANDR
#undef SDL_VIDEO_DRIVER_X11_XINPUT #undef SDL_VIDEO_DRIVER_X11_XINPUT
#undef SDL_VIDEO_DRIVER_X11_SCRNSAVER
#undef SDL_VIDEO_DRIVER_X11_XV #undef SDL_VIDEO_DRIVER_X11_XV
#undef SDL_VIDEO_DRIVER_XBIOS #undef SDL_VIDEO_DRIVER_XBIOS
......
...@@ -1311,6 +1311,36 @@ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_TextureID textureID); ...@@ -1311,6 +1311,36 @@ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_TextureID textureID);
*/ */
extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_WindowID windowID); extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_WindowID windowID);
/**
* \fn SDL_bool SDL_IsScreenSaverEnabled();
*
* \brief Returns whether the screensaver is currently enabled (default off).
*
* \sa SDL_EnableScreenSaver()
* \sa SDL_DisableScreenSaver()
*/
extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled();
/**
* \fn void SDL_EnableScreenSaver();
*
* \brief Allow the screen to be blanked by a screensaver
*
* \sa SDL_IsScreenSaverEnabled()
* \sa SDL_DisableScreenSaver()
*/
extern DECLSPEC void SDLCALL SDL_EnableScreenSaver();
/**
* \fn void SDL_DisableScreenSaver();
*
* \brief Prevent the screen from being blanked by a screensaver
*
* \sa SDL_IsScreenSaverEnabled()
* \sa SDL_EnableScreenSaver()
*/
extern DECLSPEC void SDLCALL SDL_DisableScreenSaver();
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* OpenGL support functions. */ /* OpenGL support functions. */
......
...@@ -376,6 +376,26 @@ ClearVideoSurface() ...@@ -376,6 +376,26 @@ ClearVideoSurface()
SDL_UpdateRect(SDL_PublicSurface, 0, 0, 0, 0); SDL_UpdateRect(SDL_PublicSurface, 0, 0, 0, 0);
} }
static void
SetupScreenSaver()
{
const char *env;
SDL_bool allow_screensaver;
/* Allow environment override of screensaver disable */
env = SDL_getenv("SDL_VIDEO_ALLOW_SCREENSAVER");
if (env) {
allow_screensaver = SDL_atoi(env) ? SDL_TRUE : SDL_FALSE;
} else {
allow_screensaver = SDL_FALSE;
}
if (allow_screensaver) {
SDL_EnableScreenSaver();
} else {
SDL_DisableScreenSaver();
}
}
int int
SDL_ResizeVideoMode(int width, int height, int bpp, Uint32 flags) SDL_ResizeVideoMode(int width, int height, int bpp, Uint32 flags)
{ {
...@@ -456,6 +476,7 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) ...@@ -456,6 +476,7 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
{ {
SDL_DisplayMode desktop_mode; SDL_DisplayMode desktop_mode;
SDL_DisplayMode mode; SDL_DisplayMode mode;
const char *env;
int window_x = SDL_WINDOWPOS_UNDEFINED; int window_x = SDL_WINDOWPOS_UNDEFINED;
int window_y = SDL_WINDOWPOS_UNDEFINED; int window_y = SDL_WINDOWPOS_UNDEFINED;
Uint32 window_flags; Uint32 window_flags;
...@@ -679,6 +700,8 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) ...@@ -679,6 +700,8 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
ClearVideoSurface(); ClearVideoSurface();
SetupScreenSaver();
/* We're finally done! */ /* We're finally done! */
return SDL_PublicSurface; return SDL_PublicSurface;
} }
......
...@@ -273,8 +273,12 @@ struct SDL_VideoDevice ...@@ -273,8 +273,12 @@ struct SDL_VideoDevice
*/ */
void (*PumpEvents) (_THIS); void (*PumpEvents) (_THIS);
/* Suspend the screensaver */
void (*SuspendScreenSaver) (_THIS);
/* * * */ /* * * */
/* Data common to all drivers */ /* Data common to all drivers */
SDL_bool suspend_screensaver;
int num_displays; int num_displays;
SDL_VideoDisplay *displays; SDL_VideoDisplay *displays;
int current_display; int current_display;
......
...@@ -2326,6 +2326,45 @@ SDL_DestroyRenderer(SDL_WindowID windowID) ...@@ -2326,6 +2326,45 @@ SDL_DestroyRenderer(SDL_WindowID windowID)
} }
} }
SDL_bool
SDL_IsScreenSaverEnabled()
{
if (!_this) {
return SDL_TRUE;
}
return _this->suspend_screensaver ? SDL_FALSE : SDL_TRUE;
}
void
SDL_EnableScreenSaver()
{
if (!_this) {
return;
}
if (!_this->suspend_screensaver) {
return;
}
_this->suspend_screensaver = SDL_FALSE;
if (_this->SuspendScreenSaver) {
_this->SuspendScreenSaver(_this);
}
}
void
SDL_DisableScreenSaver()
{
if (!_this) {
return;
}
if (_this->suspend_screensaver) {
return;
}
_this->suspend_screensaver = SDL_TRUE;
if (_this->SuspendScreenSaver) {
_this->SuspendScreenSaver(_this);
}
}
void void
SDL_VideoQuit(void) SDL_VideoQuit(void)
{ {
......
/*
* Copyright 1993-2001 by Xi Graphics, Inc.
* All Rights Reserved.
*
* Please see the LICENSE file accompanying this distribution for licensing
* information.
*
* Please send any bug fixes and modifications to src@xig.com.
*
* $XiGId: xme.h,v 1.1.1.1 2001/11/19 19:01:10 jon Exp $
*
*/
#ifndef _XME_H_INCLUDED
#define _XME_H_INCLUDED
typedef struct
{
short x;
short y;
unsigned short w;
unsigned short h;
} XiGMiscViewInfo;
typedef struct
{
unsigned short width;
unsigned short height;
int refresh;
} XiGMiscResolutionInfo;
extern Bool XiGMiscQueryVersion(Display * dpy, int *major, int *minor);
extern int XiGMiscQueryViews(Display * dpy, int screen,
XiGMiscViewInfo ** pviews);
extern int XiGMiscQueryResolutions(Display * dpy, int screen, int view,
int *pactive,
XiGMiscResolutionInfo ** presolutions);
extern void XiGMiscChangeResolution(Display * dpy, int screen, int view,
int width, int height, int refresh);
/* SDL addition from Ryan: free memory used by xme. */
extern void XiGMiscDestroy(void);
#endif /* _XME_H_INCLUDED */
/* vi: set ts=4 sw=4 expandtab: */
...@@ -164,6 +164,17 @@ Cocoa_PumpEvents(_THIS) ...@@ -164,6 +164,17 @@ Cocoa_PumpEvents(_THIS)
{ {
NSAutoreleasePool *pool; NSAutoreleasePool *pool;
/* Update activity every 30 seconds to prevent screensaver */
if (_this->suspend_screensaver) {
SDL_VideoData *data = (SDL_VideoData *)_this->driverdata;
Uint32 now = SDL_GetTicks();
if (!data->screensaver_activity ||
(int)(now-data->screensaver_activity) >= 30000) {
UpdateSystemActivity(UsrActivity);
data->screensaver_activity = now;
}
}
pool = [[NSAutoreleasePool alloc] init]; pool = [[NSAutoreleasePool alloc] init];
while ([NSApp isRunning]) { while ([NSApp isRunning]) {
NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ]; NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ];
......
...@@ -49,6 +49,7 @@ typedef struct SDL_VideoData ...@@ -49,6 +49,7 @@ typedef struct SDL_VideoData
int keyboard; int keyboard;
void *key_layout; void *key_layout;
NSText *fieldEdit; NSText *fieldEdit;
Uint32 screensaver_activity;
} SDL_VideoData; } SDL_VideoData;
#endif /* _SDL_cocoavideo_h */ #endif /* _SDL_cocoavideo_h */
......
...@@ -578,8 +578,8 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) ...@@ -578,8 +578,8 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
/* Don't start the screensaver or blank the monitor in fullscreen apps */ /* Don't start the screensaver or blank the monitor in fullscreen apps */
if ((wParam & 0xFFF0) == SC_SCREENSAVE || if ((wParam & 0xFFF0) == SC_SCREENSAVE ||
(wParam & 0xFFF0) == SC_MONITORPOWER) { (wParam & 0xFFF0) == SC_MONITORPOWER) {
if (SDL_GetWindowFlags(data->windowID) & SDL_VideoData *videodata = data->videodata;
SDL_WINDOW_FULLSCREEN) { if (videodata->suspend_screensaver) {
return (0); return (0);
} }
} }
......
...@@ -62,6 +62,7 @@ static x11dynlib x11libs[] = { ...@@ -62,6 +62,7 @@ static x11dynlib x11libs[] = {
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER}, {NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER},
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR}, {NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR},
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT}, {NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT},
{NULL, SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS},
}; };
static void static void
......
...@@ -394,6 +394,16 @@ X11_PumpEvents(_THIS) ...@@ -394,6 +394,16 @@ X11_PumpEvents(_THIS)
{ {
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
/* Update activity every 30 seconds to prevent screensaver */
if (_this->suspend_screensaver) {
Uint32 now = SDL_GetTicks();
if (!data->screensaver_activity ||
(int)(now-data->screensaver_activity) >= 30000) {
XResetScreenSaver(data->display);
data->screensaver_activity = now;
}
}
/* Keep processing pending events */ /* Keep processing pending events */
while (X11_Pending(data->display)) { while (X11_Pending(data->display)) {
X11_DispatchEvent(_this); X11_DispatchEvent(_this);
...@@ -401,61 +411,28 @@ X11_PumpEvents(_THIS) ...@@ -401,61 +411,28 @@ X11_PumpEvents(_THIS)
} }
void void
X11_SaveScreenSaver(Display * display, int *saved_timeout, BOOL * dpms) X11_SuspendScreenSaver(_THIS)
{ {
int timeout, interval, prefer_blank, allow_exp; #if SDL_VIDEO_DRIVER_X11_SCRNSAVER
XGetScreenSaver(display, &timeout, &interval, &prefer_blank, &allow_exp); SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
*saved_timeout = timeout; int dummy;
int major_version, minor_version;
#if SDL_VIDEO_DRIVER_X11_DPMS
if (SDL_X11_HAVE_DPMS) {
int dummy;
if (DPMSQueryExtension(display, &dummy, &dummy)) {
CARD16 state;
DPMSInfo(display, &state, dpms);
}
}
#else
*dpms = 0;
#endif /* SDL_VIDEO_DRIVER_X11_DPMS */
}
void if (!SDL_X11_HAVE_XSS) {
X11_DisableScreenSaver(Display * display) return;
{
int timeout, interval, prefer_blank, allow_exp;
XGetScreenSaver(display, &timeout, &interval, &prefer_blank, &allow_exp);
timeout = 0;
XSetScreenSaver(display, timeout, interval, prefer_blank, allow_exp);
#if SDL_VIDEO_DRIVER_X11_DPMS
if (SDL_X11_HAVE_DPMS) {
int dummy;
if (DPMSQueryExtension(display, &dummy, &dummy)) {
DPMSDisable(display);
}
} }
#endif /* SDL_VIDEO_DRIVER_X11_DPMS */
}
void /* XScreenSaverSuspend was introduced in MIT-SCREEN-SAVER 1.1 */
X11_RestoreScreenSaver(Display * display, int saved_timeout, BOOL dpms) if (!XScreenSaverQueryExtension(data->display, &dummy, &dummy) ||
{ !XScreenSaverQueryVersion(data->display,
int timeout, interval, prefer_blank, allow_exp; &major_version, &minor_version) ||
XGetScreenSaver(display, &timeout, &interval, &prefer_blank, &allow_exp); major_version < 1 || (major_version == 1 && minor_version < 1)) {
timeout = saved_timeout; return;
XSetScreenSaver(display, timeout, interval, prefer_blank, allow_exp);
#if SDL_VIDEO_DRIVER_X11_DPMS
if (SDL_X11_HAVE_DPMS) {
int dummy;
if (DPMSQueryExtension(display, &dummy, &dummy)) {
if (dpms) {
DPMSEnable(display);
}
}
} }
#endif /* SDL_VIDEO_DRIVER_X11_DPMS */
XScreenSaverSuspend(data->display, _this->suspend_screensaver);
XResetScreenSaver(data->display);
#endif
} }
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */
...@@ -25,11 +25,7 @@ ...@@ -25,11 +25,7 @@
#define _SDL_x11events_h #define _SDL_x11events_h
extern void X11_PumpEvents(_THIS); extern void X11_PumpEvents(_THIS);
extern void X11_SaveScreenSaver(Display * display, int *saved_timeout, extern void X11_SuspendScreenSaver(_THIS);
BOOL * dpms);
extern void X11_DisableScreenSaver(Display * display);
extern void X11_RestoreScreenSaver(Display * display, int saved_timeout,
BOOL dpms);
#endif /* _SDL_x11events_h */ #endif /* _SDL_x11events_h */
......
...@@ -67,7 +67,6 @@ SDL_X11_SYM(int,XGetErrorDatabaseText,(Display* a,_Xconst char* b,_Xconst char* ...@@ -67,7 +67,6 @@ SDL_X11_SYM(int,XGetErrorDatabaseText,(Display* a,_Xconst char* b,_Xconst char*
SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return) SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return)
SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return) SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return)
SDL_X11_SYM(int,XGetRGBColormaps,(Display* a,Window b,XStandardColormap **c,int *d,Atom e),(a,b,c,d,e),return) SDL_X11_SYM(int,XGetRGBColormaps,(Display* a,Window b,XStandardColormap **c,int *d,Atom e),(a,b,c,d,e),return)
SDL_X11_SYM(int,XGetScreenSaver,(Display* a,int* b,int* c,int* d,int* e),(a,b,c,d,e),return)
SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return) SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return)
SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return) SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return)
SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return) SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return)
...@@ -102,6 +101,7 @@ SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return) ...@@ -102,6 +101,7 @@ SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return)
SDL_X11_SYM(Bool,XQueryPointer,(Display* a,Window b,Window* c,Window* d,int* e,int* f,int* g,int* h,unsigned int* i),(a,b,c,d,e,f,g,h,i),return) SDL_X11_SYM(Bool,XQueryPointer,(Display* a,Window b,Window* c,Window* d,int* e,int* f,int* g,int* h,unsigned int* i),(a,b,c,d,e,f,g,h,i),return)
SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return) SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return)
SDL_X11_SYM(int,XReparentWindow,(Display* a,Window b,Window c,int d,int e),(a,b,c,d,e),return) SDL_X11_SYM(int,XReparentWindow,(Display* a,Window b,Window c,int d,int e),(a,b,c,d,e),return)
SDL_X11_SYM(int,XResetScreenSaver,(Display* a),(a),return)
SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return) SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return)
SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return) SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return)
SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return) SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return)
...@@ -111,7 +111,6 @@ SDL_X11_SYM(int,XSetForeground,(Display* a,GC b,unsigned long c),(a,b,c),return) ...@@ -111,7 +111,6 @@ SDL_X11_SYM(int,XSetForeground,(Display* a,GC b,unsigned long c),(a,b,c),return)
SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return) SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return)
SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return) SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return)
SDL_X11_SYM(void,XSetRGBColormaps,( Display *a,Window b,XStandardColormap *c,int d,Atom e),(a,b,c,d,e),return) SDL_X11_SYM(void,XSetRGBColormaps,( Display *a,Window b,XStandardColormap *c,int d,Atom e),(a,b,c,d,e),return)
SDL_X11_SYM(int,XSetScreenSaver,(Display* a,int b,int c,int d,int e),(a,b,c,d,e),return)
SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return) SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return)
SDL_X11_SYM(int,XSetWMHints,(Display* a,Window b,XWMHints* c),(a,b,c),return) SDL_X11_SYM(int,XSetWMHints,(Display* a,Window b,XWMHints* c),(a,b,c),return)
SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),) SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),)
...@@ -212,15 +211,6 @@ SDL_X11_SYM(Status,XRRSetScreenConfigAndRate,(Display *dpy,XRRScreenConfiguratio ...@@ -212,15 +211,6 @@ SDL_X11_SYM(Status,XRRSetScreenConfigAndRate,(Display *dpy,XRRScreenConfiguratio
SDL_X11_SYM(void,XRRFreeScreenConfigInfo,(XRRScreenConfiguration *config),(config),) SDL_X11_SYM(void,XRRFreeScreenConfigInfo,(XRRScreenConfiguration *config),(config),)
#endif #endif
/* DPMS support */
#if SDL_VIDEO_DRIVER_X11_DPMS
SDL_X11_MODULE(DPMS)
SDL_X11_SYM(Status,DPMSQueryExtension,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
SDL_X11_SYM(Status,DPMSInfo,(Display *dpy,CARD16 *state,BOOL *onoff),(dpy,state,onoff),return)
SDL_X11_SYM(Status,DPMSEnable,(Display *dpy),(dpy),return)
SDL_X11_SYM(Status,DPMSDisable,(Display *dpy),(dpy),return)
#endif
/* XInput support for multiple mice, tablets, etc. */ /* XInput support for multiple mice, tablets, etc. */
#if SDL_VIDEO_DRIVER_X11_XINPUT #if SDL_VIDEO_DRIVER_X11_XINPUT
SDL_X11_MODULE(XINPUT) SDL_X11_MODULE(XINPUT)
...@@ -231,6 +221,14 @@ SDL_X11_SYM(XDevice*,XOpenDevice,(Display *a,XID b),(a,b),return) ...@@ -231,6 +221,14 @@ SDL_X11_SYM(XDevice*,XOpenDevice,(Display *a,XID b),(a,b),return)
SDL_X11_SYM(int,XCloseDevice,(Display* a,XDevice* b),(a,b),return) SDL_X11_SYM(int,XCloseDevice,(Display* a,XDevice* b),(a,b),return)
#endif #endif
/* MIT-SCREEN-SAVER support */
#if SDL_VIDEO_DRIVER_X11_SCRNSAVER
SDL_X11_MODULE(XSS)
SDL_X11_SYM(Bool,XScreenSaverQueryExtension,(Display *dpy,int *event_base,int *error_base),(dpy,event_base,error_base),return)
SDL_X11_SYM(Status,XScreenSaverQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
SDL_X11_SYM(void,XScreenSaverSuspend,(Display *dpy,Bool suspend),(dpy,suspend),return)
#endif
/* *INDENT-ON* */ /* *INDENT-ON* */
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */
...@@ -169,6 +169,7 @@ X11_CreateDevice(int devindex) ...@@ -169,6 +169,7 @@ X11_CreateDevice(int devindex)
device->SetDisplayMode = X11_SetDisplayMode; device->SetDisplayMode = X11_SetDisplayMode;
device->SetDisplayGammaRamp = X11_SetDisplayGammaRamp; device->SetDisplayGammaRamp = X11_SetDisplayGammaRamp;
device->GetDisplayGammaRamp = X11_GetDisplayGammaRamp; device->GetDisplayGammaRamp = X11_GetDisplayGammaRamp;
device->SuspendScreenSaver = X11_SuspendScreenSaver;
device->PumpEvents = X11_PumpEvents; device->PumpEvents = X11_PumpEvents;
device->CreateWindow = X11_CreateWindow; device->CreateWindow = X11_CreateWindow;
...@@ -224,11 +225,6 @@ X11_VideoInit(_THIS) ...@@ -224,11 +225,6 @@ X11_VideoInit(_THIS)
} }
#endif #endif
/* Save DPMS and screensaver settings */
X11_SaveScreenSaver(data->display, &data->screensaver_timeout,
&data->dpms_enabled);
X11_DisableScreenSaver(data->display);
/* Look up some useful Atoms */ /* Look up some useful Atoms */
data->WM_DELETE_WINDOW = data->WM_DELETE_WINDOW =
XInternAtom(data->display, "WM_DELETE_WINDOW", False); XInternAtom(data->display, "WM_DELETE_WINDOW", False);
...@@ -260,8 +256,6 @@ X11_VideoQuit(_THIS) ...@@ -260,8 +256,6 @@ X11_VideoQuit(_THIS)
XCloseIM(data->im); XCloseIM(data->im);
} }
#endif #endif
X11_RestoreScreenSaver(data->display, data->screensaver_timeout,
data->dpms_enabled);
X11_QuitModes(_this); X11_QuitModes(_this);
X11_QuitKeyboard(_this); X11_QuitKeyboard(_this);
......
...@@ -39,15 +39,12 @@ ...@@ -39,15 +39,12 @@
#if SDL_VIDEO_DRIVER_X11_VIDMODE #if SDL_VIDEO_DRIVER_X11_VIDMODE
#include "../Xext/extensions/xf86vmode.h" #include "../Xext/extensions/xf86vmode.h"
#endif #endif
#if SDL_VIDEO_DRIVER_X11_XME
#include "../Xext/extensions/xme.h"
#endif
#if SDL_VIDEO_DRIVER_X11_DPMS
#include <X11/extensions/dpms.h>
#endif
#if SDL_VIDEO_DRIVER_X11_XINPUT #if SDL_VIDEO_DRIVER_X11_XINPUT
#include <X11/extensions/XInput.h> #include <X11/extensions/XInput.h>
#endif #endif
#if SDL_VIDEO_DRIVER_X11_SCRNSAVER
#include <X11/extensions/scrnsaver.h>
#endif
#include "SDL_x11dyn.h" #include "SDL_x11dyn.h"
...@@ -66,8 +63,7 @@ typedef struct SDL_VideoData ...@@ -66,8 +63,7 @@ typedef struct SDL_VideoData
Display *display; Display *display;
char *classname; char *classname;
XIM im; XIM im;
int screensaver_timeout; Uint32 screensaver_activity;
BOOL dpms_enabled;
int numwindows; int numwindows;
SDL_WindowData **windowlist; SDL_WindowData **windowlist;
int windowlistlength; int windowlistlength;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment