diff options
-rw-r--r-- | cfg-mplayer.h | 3 | ||||
-rw-r--r-- | libvo/x11_common.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 665f737022..4f78f7de0a 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -69,6 +69,7 @@ extern int ao_pcm_waveheader; extern char *mDisplayName; extern int WinID; extern int ice_layer; +extern int stop_xscreensaver; #endif #ifdef HAVE_AA @@ -243,6 +244,8 @@ static config_t mplayer_opts[]={ {"wid", &WinID, CONF_TYPE_INT, 0, 0, 0, NULL}, {"rootwin", &WinID, CONF_TYPE_FLAG, 0, -1, 0, NULL}, {"icelayer", &ice_layer, CONF_TYPE_INT, CONF_RANGE, 0, 15, NULL}, + {"stop_xscreensaver", &stop_xscreensaver, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"nostop_xscreensaver", &stop_xscreensaver, CONF_TYPE_FLAG, 0, 1, 0, NULL}, #endif #ifdef HAVE_XINERAMA diff --git a/libvo/x11_common.c b/libvo/x11_common.c index a39a0e319d..e2bebcdbe6 100644 --- a/libvo/x11_common.c +++ b/libvo/x11_common.c @@ -55,11 +55,13 @@ #define vo_wm_WMakerStyle 4 int ice_layer=12; +int stop_xscreensaver=0; extern int verbose; static int dpms_disabled=0; static int timeout_save=0; +static int xscreensaver_was_running=0; char* mDisplayName=NULL; Display* mDisplay=NULL; @@ -798,6 +800,9 @@ void saver_on(Display *mDisplay) { XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); } + if (xscreensaver_was_running && stop_xscreensaver) + system("xscreensaver -no-splash &"); + } void saver_off(Display *mDisplay) { @@ -824,6 +829,7 @@ void saver_off(Display *mDisplay) { XGetScreenSaver(mDisplay, &timeout_save, &interval, &prefer_blank, &allow_exp); if (timeout_save) XSetScreenSaver(mDisplay, 0, interval, prefer_blank, allow_exp); + xscreensaver_was_running = stop_xscreensaver && ! system("xscreensaver-command -exit"); // turning off screensaver } |