diff options
Diffstat (limited to 'player')
-rw-r--r-- | player/command.c | 5 | ||||
-rw-r--r-- | player/command.h | 1 | ||||
-rw-r--r-- | player/playloop.c | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/player/command.c b/player/command.c index e7a0ef6a4f..c12ad007d1 100644 --- a/player/command.c +++ b/player/command.c @@ -3524,7 +3524,8 @@ static const char *const *const mp_event_property_change[] = { "demuxer-cache-state"), E(MP_EVENT_WIN_RESIZE, "current-window-scale", "osd-width", "osd-height", "osd-par", "osd-dimensions"), - E(MP_EVENT_WIN_STATE, "display-names", "display-fps", "display-hidpi-scale"), + E(MP_EVENT_WIN_STATE, "display-names", "display-fps"), + E(MP_EVENT_WIN_STATE2, "display-hidpi-scale"), E(MP_EVENT_CHANGE_PLAYLIST, "playlist", "playlist-pos", "playlist-pos-1", "playlist-count", "playlist/count"), E(MP_EVENT_CORE_IDLE, "core-idle", "eof-reached"), @@ -6054,6 +6055,8 @@ static void command_event(struct MPContext *mpctx, int event, void *arg) // Update chapters - does nothing if something else is visible. set_osd_bar_chapters(mpctx, OSD_BAR_SEEK); } + if (event == MP_EVENT_WIN_STATE2) + ctx->cached_window_scale = 0; } void handle_command_updates(struct MPContext *mpctx) diff --git a/player/command.h b/player/command.h index e980f1715e..268a7ab0d4 100644 --- a/player/command.h +++ b/player/command.h @@ -97,6 +97,7 @@ enum { MP_EVENT_CACHE_UPDATE, MP_EVENT_WIN_RESIZE, MP_EVENT_WIN_STATE, + MP_EVENT_WIN_STATE2, MP_EVENT_CHANGE_PLAYLIST, MP_EVENT_CORE_IDLE, MP_EVENT_DURATION_UPDATE, diff --git a/player/playloop.c b/player/playloop.c index 86738e4ed0..8a287bfadf 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -847,6 +847,8 @@ static void handle_vo_events(struct MPContext *mpctx) mp_notify(mpctx, MP_EVENT_WIN_RESIZE, NULL); if (events & VO_EVENT_WIN_STATE) mp_notify(mpctx, MP_EVENT_WIN_STATE, NULL); + if (events & VO_EVENT_DPI) + mp_notify(mpctx, MP_EVENT_WIN_STATE2, NULL); } static void handle_sstep(struct MPContext *mpctx) |