From 118a2a359f93d8fcd3fc2290162c45a0c17fc7a2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 14 Jun 2013 00:36:43 +0200 Subject: 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. --- video/out/w32_common.c | 14 ++++++++++++-- video/out/w32_common.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'video') 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; -- cgit v1.2.3