summaryrefslogtreecommitdiffstats
path: root/libmenu/vf_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmenu/vf_menu.c')
-rw-r--r--libmenu/vf_menu.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libmenu/vf_menu.c b/libmenu/vf_menu.c
index ecfc0f19c8..b1fd822f36 100644
--- a/libmenu/vf_menu.c
+++ b/libmenu/vf_menu.c
@@ -165,6 +165,7 @@ inline static void copy_mpi(mp_image_t *dmpi, mp_image_t *mpi) {
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
mp_image_t *dmpi = NULL;
+ if(vf->priv->current->show) {
// Close all menu who requested it
while(vf->priv->current->cl && vf->priv->current != vf->priv->root) {
menu_t* m = vf->priv->current;
@@ -207,6 +208,21 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
}
menu_draw(vf->priv->current,dmpi);
+ } else {
+ if(mp_input_key_cb)
+ mp_input_key_cb = NULL;
+ dmpi = vf_get_image(vf->next,mpi->imgfmt,
+ MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE,
+ mpi->w,mpi->h);
+
+ dmpi->stride[0] = mpi->stride[0];
+ dmpi->stride[1] = mpi->stride[1];
+ dmpi->stride[2] = mpi->stride[2];
+ dmpi->planes[0] = mpi->planes[0];
+ dmpi->planes[1] = mpi->planes[1];
+ dmpi->planes[2] = mpi->planes[2];
+ dmpi->priv = mpi->priv;
+ }
return vf_next_put_image(vf,dmpi);
}