mirror of
https://github.com/mpv-player/mpv
synced 2025-01-31 04:02:06 +00:00
osd: don't let slow commands cut OSD messages short
Done for screenshot commands, requested by a user.
This commit is contained in:
parent
45c8b97efb
commit
a9e6ba1b9a
@ -174,6 +174,7 @@ typedef struct MPContext {
|
||||
int osd_function;
|
||||
double osd_function_visible;
|
||||
double osd_msg_visible;
|
||||
double osd_msg_next_duration;
|
||||
double osd_last_update;
|
||||
bool osd_force_update;
|
||||
char *osd_msg_text;
|
||||
|
@ -271,7 +271,7 @@ static bool set_osd_msg_va(struct MPContext *mpctx, int level, int time,
|
||||
talloc_free(mpctx->osd_msg_text);
|
||||
mpctx->osd_msg_text = talloc_vasprintf(mpctx, fmt, ap);
|
||||
mpctx->osd_show_pos = false;
|
||||
mpctx->osd_msg_visible = mp_time_sec() + time / 1000.0;
|
||||
mpctx->osd_msg_next_duration = time / 1000.0;
|
||||
mpctx->osd_force_update = true;
|
||||
mpctx->sleeptime = 0;
|
||||
return true;
|
||||
@ -477,6 +477,13 @@ void update_osd_msg(struct MPContext *mpctx)
|
||||
mpctx->osd_function = 0;
|
||||
}
|
||||
|
||||
if (mpctx->osd_msg_next_duration > 0) {
|
||||
// This is done to avoid cutting the OSD message short if slow commands
|
||||
// are executed between setting the OSD message and showing it.
|
||||
mpctx->osd_msg_visible = now + mpctx->osd_msg_next_duration;
|
||||
mpctx->osd_msg_next_duration = 0;
|
||||
}
|
||||
|
||||
if (mpctx->osd_msg_visible) {
|
||||
double sleep = mpctx->osd_msg_visible - now;
|
||||
if (sleep > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user