From: Rémi Duraffort Date: Wed, 2 Jan 2008 13:30:44 +0000 (+0000) Subject: Limit mouse-x and mouse-y in sdl video_output module.\nSame than [24031] but for sdl X-Git-Tag: 0.9.0-test0~3717 X-Git-Url: https://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;p=vlc.git;a=commitdiff_plain;h=45aef3e0b2089e171d0ff04163350bf49e2515c5 Limit mouse-x and mouse-y in sdl video_output module.\nSame than [24031] but for sdl --- diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c index 86a9144ed5..ff61d1d644 100644 --- a/modules/video_output/sdl.c +++ b/modules/video_output/sdl.c @@ -376,11 +376,30 @@ static int Manage( vout_thread_t *p_vout ) p_vout->p_sys->i_height, &i_x, &i_y, &i_width, &i_height ); - val.i_int = ( event.motion.x - i_x ) - * p_vout->render.i_width / i_width; + /* Compute the x coordinate and check if the value is + in [0,p_vout->fmt_in.i_visible_width] */ + val.i_int = ( event.motion.x - i_x ) * + p_vout->fmt_in.i_visible_width / i_width + + p_vout->fmt_in.i_x_offset; + + if( (int)(event.motion.x - i_x) < 0 ) + val.i_int = 0; + else if( (unsigned int)val.i_int > p_vout->fmt_in.i_visible_width ) + val.i_int = p_vout->fmt_in.i_visible_width; + var_Set( p_vout, "mouse-x", val ); - val.i_int = ( event.motion.y - i_y ) - * p_vout->render.i_height / i_height; + + /* compute the y coordinate and check if the value is + in [0,p_vout->fmt_in.i_visible_height] */ + val.i_int = ( event.motion.y - i_y ) * + p_vout->fmt_in.i_visible_height / i_height + + p_vout->fmt_in.i_y_offset; + + if( (int)(event.motion.y - i_y) < 0 ) + val.i_int = 0; + else if( (unsigned int)val.i_int > p_vout->fmt_in.i_visible_height ) + val.i_int = p_vout->fmt_in.i_visible_height; + var_Set( p_vout, "mouse-y", val ); val.b_bool = VLC_TRUE;