summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-06-14 00:36:43 +0200
committerwm4 <wm4@nowhere>2013-06-14 00:39:31 +0200
commit118a2a359f93d8fcd3fc2290162c45a0c17fc7a2 (patch)
tree5e9423c2bf7feb5b6ce8557eef151af2383e3bca /video
parentf1d3ba0e3318eb4b0ac5686fed4b80acb3753919 (diff)
downloadmpv-118a2a359f93d8fcd3fc2290162c45a0c17fc7a2.tar.bz2
mpv-118a2a359f93d8fcd3fc2290162c45a0c17fc7a2.tar.xz
w32: enable screensaver when paused
This is quite similar to the previous commit. Untested. I'm not sure if this is how it's supposed to work. At least --no-stop-screensaver should work in any case.
Diffstat (limited to 'video')
-rw-r--r--video/out/w32_common.c14
-rw-r--r--video/out/w32_common.h1
2 files changed, 13 insertions, 2 deletions
diff --git a/video/out/w32_common.c b/video/out/w32_common.c
index 42a158a42f..18f971050d 100644
--- a/video/out/w32_common.c
+++ b/video/out/w32_common.c
@@ -174,10 +174,13 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
break;
case WM_SYSCOMMAND:
switch (wParam) {
- case SC_SCREENSAVE:
- case SC_MONITORPOWER:
+ case SC_SCREENSAVE:
+ case SC_MONITORPOWER:
+ if (w32->disable_screensaver) {
mp_msg(MSGT_VO, MSGL_V, "vo: win32: killing screensaver\n");
return 0;
+ }
+ break;
}
break;
case WM_KEYDOWN:
@@ -672,6 +675,7 @@ static void vo_w32_ontop(struct vo *vo)
int vo_w32_control(struct vo *vo, int *events, int request, void *arg)
{
+ struct vo_w32_state *w32 = vo->w32;
switch (request) {
case VOCTRL_CHECK_EVENTS:
*events |= vo_w32_check_events(vo);
@@ -696,6 +700,12 @@ int vo_w32_control(struct vo *vo, int *events, int request, void *arg)
} else {
while (ShowCursor(0) >= 0) { }
}
+ case VOCTRL_KILL_SCREENSAVER:
+ w32->disable_screensaver = true;
+ break;
+ case VOCTRL_RESTORE_SCREENSAVER:
+ w32->disable_screensaver = false;
+ break;
}
return VO_NOTIMPL;
}
diff --git a/video/out/w32_common.h b/video/out/w32_common.h
index 1bbf27730f..3db34a8472 100644
--- a/video/out/w32_common.h
+++ b/video/out/w32_common.h
@@ -44,6 +44,7 @@ struct vo_w32_state {
uint32_t o_dwidth;
uint32_t o_dheight;
+ bool disable_screensaver;
int event_flags;
int mon_cnt;
int mon_id;