Index: libmenu/vf_menu.c =================================================================== RCS file: /cvsroot/mplayer/main/libmenu/vf_menu.c,v retrieving revision 1.1 diff -u -r1.1 vf_menu.c --- libmenu/vf_menu.c 14 Nov 2002 23:47:11 -0000 1.1 +++ libmenu/vf_menu.c 18 Nov 2002 13:54:00 -0000 @@ -162,51 +162,56 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ - mp_image_t *dmpi = NULL; - - // Close all menu who requested it - while(vf->priv->current->cl && vf->priv->current != vf->priv->root) { - menu_t* m = vf->priv->current; - vf->priv->current = m->parent ? m->parent : vf->priv->root; - menu_close(m); - } - - // Step 1 : save the picture - while(go2pause == 1) { - static char delay = 0; // Hack : wait the 2 frame to be sure to show the right picture - delay ^= 1; // after a seek - if(!delay) break; + if(vf->priv->current->show) { + mp_image_t *dmpi = NULL; + // Close all menu who requested it + while(vf->priv->current->cl && vf->priv->current != vf->priv->root) { + menu_t* m = vf->priv->current; + vf->priv->current = m->parent ? m->parent : vf->priv->root; + menu_close(m); + } - if(pause_mpi && (mpi->w != pause_mpi->w || mpi->h != pause_mpi->h || - mpi->imgfmt != pause_mpi->imgfmt)) { - free_mp_image(pause_mpi); - pause_mpi = NULL; + // Step 1 : save the picture + while(go2pause == 1) { + static char delay = 0; // Hack : wait the 2 frame to be sure to show the right picture + delay ^= 1; // after a seek + if(!delay) break; + + if(pause_mpi && (mpi->w != pause_mpi->w || mpi->h != pause_mpi->h || + mpi->imgfmt != pause_mpi->imgfmt)) { + free_mp_image(pause_mpi); + pause_mpi = NULL; + } + if(!pause_mpi) + pause_mpi = alloc_mpi(mpi->w,mpi->h,mpi->imgfmt); + copy_mpi(pause_mpi,mpi); + mp_input_queue_cmd(mp_input_parse_cmd("pause")); + go2pause = 2; + break; } - if(!pause_mpi) - pause_mpi = alloc_mpi(mpi->w,mpi->h,mpi->imgfmt); - copy_mpi(pause_mpi,mpi); - mp_input_queue_cmd(mp_input_parse_cmd("pause")); - go2pause = 2; - break; - } - // Grab // Ungrab the keys - if(!mp_input_key_cb && vf->priv->current->show) - mp_input_key_cb = key_cb; - if(mp_input_key_cb && !vf->priv->current->show) - mp_input_key_cb = NULL; + // Grab // Ungrab the keys + if(!mp_input_key_cb && vf->priv->current->show) + mp_input_key_cb = key_cb; + if(mp_input_key_cb && !vf->priv->current->show) + mp_input_key_cb = NULL; + + if(mpi->flags&MP_IMGFLAG_DIRECT) + dmpi = mpi->priv; + else { + dmpi = vf_get_image(vf->next,mpi->imgfmt, + MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, + mpi->w,mpi->h); + copy_mpi(dmpi,mpi); + } + menu_draw(vf->priv->current,dmpi); - if(mpi->flags&MP_IMGFLAG_DIRECT) - dmpi = mpi->priv; - else { - dmpi = vf_get_image(vf->next,mpi->imgfmt, - MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, - mpi->w,mpi->h); - copy_mpi(dmpi,mpi); + return vf_next_put_image(vf,dmpi); + } else { + if(mp_input_key_cb) + mp_input_key_cb = NULL; + return vf_next_put_image(vf,mpi); } - menu_draw(vf->priv->current,dmpi); - - return vf_next_put_image(vf,dmpi); } static void uninit(vf_instance_t *vf) {