* xcommon.c: Functions common to the X11 and XVideo plugins
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: xcommon.c,v 1.10 2003/01/15 13:48:14 sam Exp $
+ * $Id: xcommon.c,v 1.14 2003/02/09 23:42:06 sigmunau Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
#endif
#ifdef MODULE_NAME_IS_x11
-static void SetPalette ( vout_thread_t *, u16 *, u16 *, u16 * );
+static void SetPalette ( vout_thread_t *,
+ uint16_t *, uint16_t *, uint16_t * );
#endif
/*****************************************************************************
switch( ((XButtonEvent *)&xevent)->button )
{
case Button1:
-
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 1;
+ var_Set( p_vout, "mouse-button-down", val );
+
/* detect double-clicks */
if( ( ((XButtonEvent *)&xevent)->time -
p_vout->p_sys->i_time_button_last_pressed ) < 300 )
p_vout->p_sys->i_time_button_last_pressed =
((XButtonEvent *)&xevent)->time;
break;
-
+ case Button2:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 2;
+ var_Set( p_vout, "mouse-button-down", val );
+ break;
+
+ case Button3:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 4;
+ var_Set( p_vout, "mouse-button-down", val );
+ break;
+
case Button4:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 8;
+ var_Set( p_vout, "mouse-button-down", val );
input_Seek( p_vout, 15, INPUT_SEEK_SECONDS | INPUT_SEEK_CUR );
break;
case Button5:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int |= 16;
+ var_Set( p_vout, "mouse-button-down", val );
input_Seek( p_vout, -15, INPUT_SEEK_SECONDS | INPUT_SEEK_CUR );
break;
}
switch( ((XButtonEvent *)&xevent)->button )
{
case Button1:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~1;
+ var_Set( p_vout, "mouse-button-down", val );
+
val.b_bool = VLC_TRUE;
var_Set( p_vout, "mouse-clicked", val );
break;
-
+
+ case Button2:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~2;
+ var_Set( p_vout, "mouse-button-down", val );
+ break;
+
case Button3:
{
intf_thread_t *p_intf;
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~4;
+ var_Set( p_vout, "mouse-button-down", val );
p_intf = vlc_object_find( p_vout, VLC_OBJECT_INTF,
FIND_ANYWHERE );
if( p_intf )
}
}
break;
+
+ case Button4:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~8;
+ var_Set( p_vout, "mouse-button-down", val );
+ break;
+
+ case Button5:
+ var_Get( p_vout, "mouse-button-down", &val );
+ val.i_int &= ~16;
+ var_Set( p_vout, "mouse-button-down", val );
+ break;
+
}
}
/* Mouse move */
ClientMessage, &xevent ) )
{
if( (xevent.xclient.message_type == p_vout->p_sys->p_win->wm_protocols)
- && (xevent.xclient.data.l[0]
+ && ((Atom)xevent.xclient.data.l[0]
== p_vout->p_sys->p_win->wm_delete_window ) )
{
p_vout->p_vlc->b_die = 1;
p_vout->i_changes &= ~VOUT_SIZE_CHANGE;
- msg_Dbg( p_vout, "video display resized (%dx%d)",
- p_vout->p_sys->p_win->i_width,
- p_vout->p_sys->p_win->i_height );
-
#ifdef MODULE_NAME_IS_x11
/* We need to signal the vout thread about the size change because it
* is doing the rescaling */
vlc_bool_t b_configure_notify;
vlc_bool_t b_map_notify;
+ vlc_value_t val;
long long int i_drawable;
/* Prepare window manager hints and properties */
xwindow_attributes.event_mask = ExposureMask | StructureNotifyMask;
/* Check whether someone provided us with a window ID */
- i_drawable = p_vout->b_fullscreen ?
- -1 : config_GetInt( p_vout, MODULE_STRING "-drawable");
+ var_Get( p_vout->p_vlc, "drawable", &val );
+ i_drawable = p_vout->b_fullscreen ? 0 : val.i_int;
- if( i_drawable == -1 )
+ if( !i_drawable )
{
p_win->b_owned = VLC_TRUE;
int dummy;
#endif
- XSetScreenSaver( p_vout->p_sys->p_display, p_vout->p_sys->i_ss_timeout,
- p_vout->p_sys->i_ss_interval,
- p_vout->p_sys->i_ss_blanking,
- p_vout->p_sys->i_ss_exposure );
+ if( p_vout->p_sys->i_ss_timeout )
+ {
+ XSetScreenSaver( p_vout->p_sys->p_display, p_vout->p_sys->i_ss_timeout,
+ p_vout->p_sys->i_ss_interval,
+ p_vout->p_sys->i_ss_blanking,
+ p_vout->p_sys->i_ss_exposure );
+ }
/* Restore DPMS settings */
#ifdef DPMSINFO_IN_DPMS_H
&p_vout->p_sys->i_ss_exposure );
/* Disable screen saver */
- XSetScreenSaver( p_vout->p_sys->p_display, 0,
- p_vout->p_sys->i_ss_interval,
- p_vout->p_sys->i_ss_blanking,
- p_vout->p_sys->i_ss_exposure );
+ if( p_vout->p_sys->i_ss_timeout )
+ {
+ XSetScreenSaver( p_vout->p_sys->p_display, 0,
+ p_vout->p_sys->i_ss_interval,
+ p_vout->p_sys->i_ss_blanking,
+ p_vout->p_sys->i_ss_exposure );
+ }
/* Disable DPMS */
#ifdef DPMSINFO_IN_DPMS_H
* anything, but could later send information on which colors it was unable
* to set.
*****************************************************************************/
-static void SetPalette( vout_thread_t *p_vout, u16 *red, u16 *green, u16 *blue )
+static void SetPalette( vout_thread_t *p_vout,
+ uint16_t *red, uint16_t *green, uint16_t *blue )
{
int i;
XColor p_colors[255];