X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fvideo_output%2Fdisplay.c;h=600fedf846fdfd95e45144944ce378ce44956ad7;hb=5d1ad8bc46fb54274d481c17b365b7c0442febca;hp=be379dc58fb4732c0067e843b0b0b689c527db6d;hpb=59117b28623d003c2bf3374bf551f126da4322dc;p=vlc diff --git a/src/video_output/display.c b/src/video_output/display.c index be379dc58f..600fedf846 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -784,7 +784,7 @@ void vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures) if (hide_mouse) { if (!vd->info.has_hide_mouse) { - msg_Dbg(vd, "auto hidding mouse"); + msg_Dbg(vd, "auto hiding mouse"); vout_display_Control(vd, VOUT_DISPLAY_HIDE_MOUSE); } vout_SendEventMouseHidden(osys->vout); @@ -1561,18 +1561,20 @@ vout_display_t *vout_NewSplitter(vout_thread_t *vout, #include "vout_internal.h" void vout_SendDisplayEventMouse(vout_thread_t *vout, const vlc_mouse_t *m) { - vlc_mouse_t tmp; + vlc_mouse_t tmp1, tmp2; /* The check on p_spu is needed as long as ALLOW_DUMMY_VOUT is defined */ if (vout->p->p_spu && spu_ProcessMouse( vout->p->p_spu, m, &vout->p->display.vd->source)) return; - vlc_mutex_lock( &vout->p->vfilter_lock ); - if (vout->p->vfilter_chain) { - if (!filter_chain_MouseFilter(vout->p->vfilter_chain, &tmp, m)) - m = &tmp; + vlc_mutex_lock( &vout->p->filter.lock ); + if (vout->p->filter.chain_static && vout->p->filter.chain_interactive) { + if (!filter_chain_MouseFilter(vout->p->filter.chain_interactive, &tmp1, m)) + m = &tmp1; + if (!filter_chain_MouseFilter(vout->p->filter.chain_static, &tmp2, m)) + m = &tmp2; } - vlc_mutex_unlock( &vout->p->vfilter_lock ); + vlc_mutex_unlock( &vout->p->filter.lock ); if (vlc_mouse_HasMoved(&vout->p->mouse, m)) { vout_SendEventMouseMoved(vout, m->i_x, m->i_y); @@ -1605,14 +1607,15 @@ static void DummyVoutSendDisplayEventMouse(vout_thread_t *vout, vlc_mouse_t *fal if (!vout->p) { p.mouse = *fallback; - vlc_mutex_init(&p.vfilter_lock); - p.vfilter_chain = NULL; + vlc_mutex_init(&p.filter.lock); + p.filter.chain_static = NULL; + p.filter.chain_interactive = NULL; p.p_spu = NULL; vout->p = &p; } vout_SendDisplayEventMouse(vout, m); if (vout->p == &p) { - vlc_mutex_destroy(&p.vfilter_lock); + vlc_mutex_destroy(&p.filter.lock); *fallback = p.mouse; vout->p = NULL; }