diff --git a/command_event.c b/command_event.c index e22f207736..e59bd4c9c3 100644 --- a/command_event.c +++ b/command_event.c @@ -1010,10 +1010,14 @@ bool event_command(enum event_command cmd) case EVENT_CMD_RESIZE_WINDOWED_SCALE: { unsigned idx = 0; - if (global->pending.windowed_scale == 0) + unsigned *window_scale = NULL; + + runloop_ctl(RUNLOOP_CTL_GET_WINDOWED_SCALE, &window_scale); + + if (*window_scale == 0) return false; - settings->video.scale = global->pending.windowed_scale; + settings->video.scale = *window_scale; if (!settings->video.fullscreen) event_command(EVENT_CMD_REINIT); diff --git a/runloop.c b/runloop.c index 4b16afe142..7de6454fac 100644 --- a/runloop.c +++ b/runloop.c @@ -383,6 +383,14 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) break; case RUNLOOP_CTL_IS_PERFCNT_ENABLE: return runloop_perfcnt_enable; + case RUNLOOP_CTL_GET_WINDOWED_SCALE: + { + unsigned **scale = (unsigned**)data; + if (!scale) + return false; + *scale = (unsigned*)&global->pending.windowed_scale; + } + break; case RUNLOOP_CTL_SET_WINDOWED_SCALE: { unsigned *idx = (unsigned*)data; diff --git a/runloop.h b/runloop.h index 192e9c9f79..3ef98d0d3e 100644 --- a/runloop.h +++ b/runloop.h @@ -35,6 +35,7 @@ extern "C" { enum runloop_ctl_state { RUNLOOP_CTL_IS_IDLE = 0, + RUNLOOP_CTL_GET_WINDOWED_SCALE, RUNLOOP_CTL_SET_WINDOWED_SCALE, RUNLOOP_CTL_SET_IDLE, RUNLOOP_CTL_CHECK_IDLE_STATE,