- /* mouse is over visualisation */
- p_vout->p_sys->i_x = __MIN( __MAX( valx.i_int*VIS_ZOOM - v_w/2, 0 ),
- p_vout->output.i_width - v_w - 1);
- p_vout->p_sys->i_y = __MIN( __MAX( valy.i_int * VIS_ZOOM - v_h/2,
- 0 ), p_vout->output.i_height - v_h - 1);
- }
- else if( valx.i_int >= 0 && valx.i_int < 80
- && valy.i_int >= (int)p_vout->output.i_height/VIS_ZOOM
- && valy.i_int < (int)p_vout->output.i_height/VIS_ZOOM + 9
- && mouse&MOUSE_CLICKED )
- {
- /* mouse is over the "VLC ZOOM HIDE" text */
- p_vout->p_sys->b_visible = false;
- }
- else if( (int)p_vout->output.i_height/VIS_ZOOM + 9 <= valy.i_int
- && valy.i_int <= (int)p_vout->output.i_height/VIS_ZOOM + 90
- && 0 <= valx.i_int
- && valx.i_int <=
- (( (int)p_vout->output.i_height/VIS_ZOOM + 90 - valy.i_int)
- *( (int)p_vout->output.i_height/VIS_ZOOM + 90 - valy.i_int))/160 )
- {
- /* mouse is over zoom gauge */
- p_vout->p_sys->i_zoom = __MAX( ZOOM_FACTOR,
- ( 80 + (int)p_vout->output.i_height/VIS_ZOOM
- - valy.i_int + 2) * ZOOM_FACTOR/10 );
- }
- else if( mouse&MOUSE_MOVE_X && !(mouse&MOUSE_CLICKED) )
- {
- p_vout->p_sys->i_x -= (newval.i_int - oldval.i_int)
- *ZOOM_FACTOR/p_vout->p_sys->i_zoom;
- }
- else if( mouse&MOUSE_MOVE_Y && !(mouse&MOUSE_CLICKED) )
- {
- p_vout->p_sys->i_y -= (newval.i_int - oldval.i_int)
- *ZOOM_FACTOR/p_vout->p_sys->i_zoom;
+ const int v_w = p_fmt->i_width * ZOOM_FACTOR / p_sys->i_zoom;
+ const int v_h = p_fmt->i_height * ZOOM_FACTOR / p_sys->i_zoom;
+
+ p_sys->i_x = __MIN( __MAX( p_new->i_x * VIS_ZOOM - v_w/2, 0 ),
+ (int)p_fmt->i_width - v_w - 1);
+ p_sys->i_y = __MIN( __MAX( p_new->i_y * VIS_ZOOM - v_h/2, 0 ),
+ (int)p_fmt->i_height - v_h - 1);
+
+ b_grab = true;