summaryrefslogtreecommitdiffstats
path: root/player/osd.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/osd.c')
-rw-r--r--player/osd.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/player/osd.c b/player/osd.c
index 939d62fd98..41d0b8d160 100644
--- a/player/osd.c
+++ b/player/osd.c
@@ -314,19 +314,21 @@ static mp_osd_msg_t *get_osd_msg(struct MPContext *mpctx)
mp_osd_msg_t *msg = mpctx->osd_msg_stack;
if (msg) {
if (!msg->started || msg->time > diff) {
+ // display it
if (msg->started)
msg->time -= diff;
else
msg->started = 1;
- // display it
- return msg;
+ } else {
+ // kill the message
+ talloc_free(msg);
+ msg = NULL;
+ mpctx->osd_msg_stack = NULL;
}
- // kill the message
- talloc_free(msg);
- mpctx->osd_msg_stack = NULL;
}
- // Nothing found
- return NULL;
+ if (msg)
+ mpctx->sleeptime = MPMIN(mpctx->sleeptime, msg->time);
+ return msg;
}
// type: mp_osd_font_codepoints, ASCII, or OSD_BAR_*