diff --git a/sub/osd_libass.c b/sub/osd_libass.c index 7bb0471610..e045bc6539 100644 --- a/sub/osd_libass.c +++ b/sub/osd_libass.c @@ -572,6 +572,11 @@ void osd_set_external(struct osd_state *osd, struct osd_external_ass *ov) goto done; } + if (!entry->ov.hidden || !ov->hidden) { + obj->changed = true; + osd->want_redraw_notification = true; + } + entry->ov.format = ov->format; if (!entry->ov.data) entry->ov.data = talloc_strdup(entry, ""); @@ -585,11 +590,6 @@ void osd_set_external(struct osd_state *osd, struct osd_external_ass *ov) update_external(osd, obj, entry); - if (!entry->ov.hidden) { - obj->changed = true; - osd->want_redraw_notification = true; - } - if (zorder_changed) { qsort(obj->externals, obj->num_externals, sizeof(obj->externals[0]), cmp_zorder);