+- (void)mouseDown:(NSEvent *)o_event
+{
+ vout_thread_t * p_vout;
+ id o_window = [self window];
+ p_vout = (vout_thread_t *)[o_window getVout];
+ vlc_value_t val;
+
+ switch( [o_event type] )
+ {
+ case NSLeftMouseDown:
+ {
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 1;
+ var_Set( p_vout, "mouse-button-down", val );
+ }
+ break;
+
+ default:
+ [super mouseDown: o_event];
+ break;
+ }
+}
+
+- (void)otherMouseDown:(NSEvent *)o_event
+{
+ vout_thread_t * p_vout;
+ id o_window = [self window];
+ p_vout = (vout_thread_t *)[o_window getVout];
+ vlc_value_t val;
+
+ switch( [o_event type] )
+ {
+ case NSOtherMouseDown:
+ {
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 2;
+ var_Set( p_vout, "mouse-button-down", val );
+ }
+ break;
+
+ default:
+ [super mouseDown: o_event];
+ break;
+ }
+}
+
+- (void)rightMouseDown:(NSEvent *)o_event
+{
+ vout_thread_t * p_vout;
+ id o_window = [self window];
+ p_vout = (vout_thread_t *)[o_window getVout];
+ vlc_value_t val;
+
+ switch( [o_event type] )
+ {
+ case NSRightMouseDown:
+ {
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 4;
+ var_Set( p_vout, "mouse-button-down", val );
+ }
+ break;
+
+ default:
+ [super mouseDown: o_event];
+ break;
+ }
+}
+