diff options
author | Marton Balint <cus@passwd.hu> | 2012-12-01 02:27:29 +0100 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2012-12-28 20:01:00 +0100 |
commit | ef7f3b08703f334768f61c2c5817b6e42c05c08a (patch) | |
tree | 13813864d11a82210222de19422f97bb9ba12823 | |
parent | 0ca4e9f014839ce26a3975e67a32c36b289d8801 (diff) | |
download | ffmpeg-ef7f3b08703f334768f61c2c5817b6e42c05c08a.tar.gz |
ffplay: hide cursor on no mouse movement
Signed-off-by: Marton Balint <cus@passwd.hu>
-rw-r--r-- | ffplay.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -90,6 +90,8 @@ const int program_birth_year = 2003; /* TODO: We assume that a decoded and resampled frame fits into this buffer */ #define SAMPLE_ARRAY_SIZE (8 * 65536) +#define CURSOR_HIDE_DELAY 1000000 + static int64_t sws_flags = SWS_BICUBIC; typedef struct MyAVPacketList { @@ -303,6 +305,8 @@ static const char *audio_codec_name; static const char *subtitle_codec_name; static const char *video_codec_name; static int rdftspeed = 20; +static int64_t cursor_last_shown; +static int cursor_hidden = 0; #if CONFIG_AVFILTER static char *vfilters = NULL; #endif @@ -3038,6 +3042,11 @@ static void event_loop(VideoState *cur_stream) break; } case SDL_MOUSEMOTION: + if (cursor_hidden) { + SDL_ShowCursor(1); + cursor_hidden = 0; + } + cursor_last_shown = av_gettime(); if (event.type == SDL_MOUSEBUTTONDOWN) { x = event.button.x; } else { @@ -3084,6 +3093,10 @@ static void event_loop(VideoState *cur_stream) alloc_picture(event.user.data1); break; case FF_REFRESH_EVENT: + if (!cursor_hidden && av_gettime() - cursor_last_shown > CURSOR_HIDE_DELAY) { + SDL_ShowCursor(0); + cursor_hidden = 1; + } video_refresh(event.user.data1); cur_stream->refresh = 0; break; |