From: Jean-Baptiste Kempf Date: Sat, 22 Mar 2008 22:32:32 +0000 (-0700) Subject: Uniformisation and configurability of Mouse Hidding Time. Patch by Lukas Durfina X-Git-Tag: 0.9.0-test0~1944 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=78e39f0d6ddac05f824b1beb6bfc712088b17fdc;p=vlc Uniformisation and configurability of Mouse Hidding Time. Patch by Lukas Durfina --- diff --git a/modules/gui/beos/VideoOutput.cpp b/modules/gui/beos/VideoOutput.cpp index 2f853280df..3a7677f930 100644 --- a/modules/gui/beos/VideoOutput.cpp +++ b/modules/gui/beos/VideoOutput.cpp @@ -77,7 +77,6 @@ struct vout_sys_t }; -#define MOUSE_IDLE_TIMEOUT 2000000 // two seconds #define MIN_AUTO_VSYNC_REFRESH 61 // Hz /***************************************************************************** @@ -984,6 +983,7 @@ VLCView::VLCView(BRect bounds, vout_thread_t *p_vout_instance ) fIgnoreDoubleClick(false) { p_vout = p_vout_instance; + fMouseHideTimeout = var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; SetViewColor(B_TRANSPARENT_32_BIT); } @@ -1169,7 +1169,7 @@ VLCView::Pulse() if (!fCursorHidden) { if (fCursorInside - && mdate() - fLastMouseMovedTime > MOUSE_IDLE_TIMEOUT) + && mdate() - fLastMouseMovedTime > fMouseHideTimeout) { be_app->ObscureCursor(); fCursorHidden = true; diff --git a/modules/gui/beos/VideoWindow.h b/modules/gui/beos/VideoWindow.h index 2e973b2abb..4f874d31ae 100644 --- a/modules/gui/beos/VideoWindow.h +++ b/modules/gui/beos/VideoWindow.h @@ -122,6 +122,7 @@ class VLCView : public BView vout_thread_t *p_vout; bigtime_t fLastMouseMovedTime; + int fMouseHideTimeout; bool fCursorHidden; bool fCursorInside; bool fIgnoreDoubleClick; diff --git a/modules/video_output/msw/direct3d.c b/modules/video_output/msw/direct3d.c index 5d2a21b649..4afe9fc6ca 100644 --- a/modules/video_output/msw/direct3d.c +++ b/modules/video_output/msw/direct3d.c @@ -183,6 +183,8 @@ static int OpenVideo( vlc_object_t *p_this ) p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->i_lastmoved = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; var_Create( p_vout, "video-title", VLC_VAR_STRING | VLC_VAR_DOINHERIT ); var_Create( p_vout, "disable-screensaver", VLC_VAR_BOOL | VLC_VAR_DOINHERIT ); @@ -475,7 +477,8 @@ static int Manage( vout_thread_t *p_vout ) * Pointer change */ if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && - (mdate() - p_vout->p_sys->i_lastmoved) > 5000000 ) + (mdate() - p_vout->p_sys->i_lastmoved) > + p_vout->p_sys->i_mouse_hide_timeout ) { POINT point; HWND hwnd; diff --git a/modules/video_output/msw/directx.c b/modules/video_output/msw/directx.c index 82c1da11ab..ea941bfad2 100644 --- a/modules/video_output/msw/directx.c +++ b/modules/video_output/msw/directx.c @@ -261,6 +261,8 @@ static int OpenVideo( vlc_object_t *p_this ) p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->i_lastmoved = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; /* Set main window's size */ p_vout->p_sys->i_window_width = p_vout->i_window_width; @@ -638,7 +640,8 @@ static int Manage( vout_thread_t *p_vout ) * Pointer change */ if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && - (mdate() - p_vout->p_sys->i_lastmoved) > 5000000 ) + (mdate() - p_vout->p_sys->i_lastmoved) > + p_vout->p_sys->i_mouse_hide_timeout ) { POINT point; HWND hwnd; diff --git a/modules/video_output/msw/glwin32.c b/modules/video_output/msw/glwin32.c index f7eec90539..2a21525040 100644 --- a/modules/video_output/msw/glwin32.c +++ b/modules/video_output/msw/glwin32.c @@ -118,6 +118,8 @@ static int OpenVideo( vlc_object_t *p_this ) p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->i_lastmoved = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; /* Set main window's size */ p_vout->p_sys->i_window_width = p_vout->i_window_width; @@ -337,7 +339,8 @@ static int Manage( vout_thread_t *p_vout ) * Pointer change */ if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && - (mdate() - p_vout->p_sys->i_lastmoved) > 5000000 ) + (mdate() - p_vout->p_sys->i_lastmoved) > + p_vout->p_sys->i_mouse_hide_timeout ) { POINT point; HWND hwnd; diff --git a/modules/video_output/msw/vout.h b/modules/video_output/msw/vout.h index 05b4afb65c..cf84ea6a22 100644 --- a/modules/video_output/msw/vout.h +++ b/modules/video_output/msw/vout.h @@ -72,6 +72,7 @@ struct vout_sys_t /* Mouse */ volatile vlc_bool_t b_cursor_hidden; volatile mtime_t i_lastmoved; + mtime_t i_mouse_hide_timeout; /* Misc */ vlc_bool_t b_on_top_change; diff --git a/modules/video_output/msw/wingdi.c b/modules/video_output/msw/wingdi.c index 41f5ec3a75..3c54718bbc 100755 --- a/modules/video_output/msw/wingdi.c +++ b/modules/video_output/msw/wingdi.c @@ -231,6 +231,8 @@ static int OpenVideo ( vlc_object_t *p_this ) p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->i_lastmoved = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; /* Set main window's size */ p_vout->p_sys->i_window_width = p_vout->i_window_width; @@ -565,7 +567,8 @@ static int Manage( vout_thread_t *p_vout ) * Pointer change */ if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && - (mdate() - p_vout->p_sys->i_lastmoved) > 5000000 ) + (mdate() - p_vout->p_sys->i_lastmoved) > + p_vout->p_sys->i_mouse_hide_timeout ) { POINT point; HWND hwnd; diff --git a/modules/video_output/qte/qte.cpp b/modules/video_output/qte/qte.cpp index 17600e6273..2940d89991 100644 --- a/modules/video_output/qte/qte.cpp +++ b/modules/video_output/qte/qte.cpp @@ -390,7 +390,8 @@ static int Manage( vout_thread_t *p_vout ) /* Pointer change */ // if( ! p_vout->p_sys->b_cursor_autohidden && -// ( mdate() - p_vout->p_sys->i_lastmoved > 2000000 ) ) +// ( mdate() - p_vout->p_sys->i_lastmoved > +// p_vout->p_sys->i_mouse_hide_timeout ) ) // { // /* Hide the mouse automatically */ // p_vout->p_sys->b_cursor_autohidden = 1; diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c index 3ed1de7168..90972cf1a9 100644 --- a/modules/video_output/sdl.c +++ b/modules/video_output/sdl.c @@ -77,6 +77,7 @@ struct vout_sys_t vlc_bool_t b_cursor; vlc_bool_t b_cursor_autohidden; mtime_t i_lastmoved; + mtime_t i_mouse_hide_timeout; mtime_t i_lastpressed; /* to track dbl-clicks */ }; @@ -227,6 +228,8 @@ static int Open ( vlc_object_t *p_this ) p_vout->p_sys->b_cursor = 1; p_vout->p_sys->b_cursor_autohidden = 0; p_vout->p_sys->i_lastmoved = p_vout->p_sys->i_lastpressed = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; if( OpenDisplay( p_vout ) ) { @@ -625,7 +628,8 @@ static int Manage( vout_thread_t *p_vout ) /* Pointer change */ if( ! p_vout->p_sys->b_cursor_autohidden && - ( mdate() - p_vout->p_sys->i_lastmoved > 2000000 ) ) + ( mdate() - p_vout->p_sys->i_lastmoved > + p_vout->p_sys->i_mouse_hide_timeout ) ) { /* Hide the mouse automatically */ p_vout->p_sys->b_cursor_autohidden = 1; diff --git a/modules/video_output/x11/xcommon.c b/modules/video_output/x11/xcommon.c index e9829c77d4..c3c686f3a1 100644 --- a/modules/video_output/x11/xcommon.c +++ b/modules/video_output/x11/xcommon.c @@ -342,6 +342,8 @@ int E_(Activate) ( vlc_object_t *p_this ) /* Create blank cursor (for mouse cursor autohiding) */ p_vout->p_sys->i_time_mouse_last_moved = mdate(); + p_vout->p_sys->i_mouse_hide_timeout = + var_GetInteger(p_vout, "mouse-hide-timeout") * 1000; p_vout->p_sys->b_mouse_pointer_visible = 1; CreateCursor( p_vout ); @@ -1553,7 +1555,8 @@ static int ManageVideo( vout_thread_t *p_vout ) } /* Autohide Cursour */ - if( mdate() - p_vout->p_sys->i_time_mouse_last_moved > 2000000 ) + if( mdate() - p_vout->p_sys->i_time_mouse_last_moved > + p_vout->p_sys->i_mouse_hide_timeout ) { /* Hide the mouse automatically */ if( p_vout->p_sys->b_mouse_pointer_visible ) diff --git a/modules/video_output/x11/xcommon.h b/modules/video_output/x11/xcommon.h index b1e9bd2583..770f057f0c 100644 --- a/modules/video_output/x11/xcommon.h +++ b/modules/video_output/x11/xcommon.h @@ -252,6 +252,7 @@ struct vout_sys_t /* Mouse pointer properties */ vlc_bool_t b_mouse_pointer_visible; mtime_t i_time_mouse_last_moved; /* used to auto-hide pointer*/ + mtime_t i_mouse_hide_timeout; /* after time hide cursor */ Cursor blank_cursor; /* the hidden cursor */ mtime_t i_time_button_last_pressed; /* to track dbl-clicks */ Pixmap cursor_pixmap; diff --git a/src/libvlc-module.c b/src/libvlc-module.c index e01b822131..600b454d68 100644 --- a/src/libvlc-module.c +++ b/src/libvlc-module.c @@ -399,6 +399,12 @@ static const char *ppsz_align_descriptions[] = #define VIDEO_TITLE_POSITION_LONGTEXT N_( \ "Place on video where to display the title (default bottom center).") +#define MOUSE_HIDE_TIMEOUT_TEXT N_("Hide cursor and fullscreen " \ + "controller after x miliseconds.") +#define MOUSE_HIDE_TIMEOUT_LONGTEXT N_( \ + "Hide mouse cursor and fullscreen controller after " \ + "n miliseconds, default is 3000 ms (3 sec.)") + static int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 }; static const char *ppsz_pos_descriptions[] = { N_("Center"), N_("Left"), N_("Right"), N_("Top"), N_("Bottom"), @@ -1485,6 +1491,9 @@ vlc_module_begin(); VIDEO_TITLE_TIMEOUT_LONGTEXT, VLC_FALSE ); add_integer( "video-title-position", 8, NULL, VIDEO_TITLE_POSITION_TEXT, VIDEO_TITLE_POSITION_LONGTEXT, VLC_FALSE ); + // autohide after 3s + add_integer( "mouse-hide-timeout", 3000, NULL, MOUSE_HIDE_TIMEOUT_TEXT, + MOUSE_HIDE_TIMEOUT_LONGTEXT, VLC_FALSE ); change_integer_list( pi_pos_values, ppsz_pos_descriptions, 0 ); set_section( N_("Snapshot") , NULL ); diff --git a/src/video_output/vout_intf.c b/src/video_output/vout_intf.c index fcd8725ef2..2385c4e512 100644 --- a/src/video_output/vout_intf.c +++ b/src/video_output/vout_intf.c @@ -287,6 +287,9 @@ void vout_IntfInit( vout_thread_t *p_vout ) var_Create( p_vout, "video-x", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); var_Create( p_vout, "video-y", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); + var_Create( p_vout, "mouse-hide-timeout", + VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); + p_vout->b_title_show = var_CreateGetBool( p_vout, "video-title-show" ); p_vout->i_title_timeout = (mtime_t)var_CreateGetInteger( p_vout, "video-title-timeout" );