Commit 78e39f0d authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Uniformisation and configurability of Mouse Hidding Time. Patch by Lukas Durfina

parent 31dcf0dd
...@@ -77,7 +77,6 @@ struct vout_sys_t ...@@ -77,7 +77,6 @@ struct vout_sys_t
}; };
#define MOUSE_IDLE_TIMEOUT 2000000 // two seconds
#define MIN_AUTO_VSYNC_REFRESH 61 // Hz #define MIN_AUTO_VSYNC_REFRESH 61 // Hz
/***************************************************************************** /*****************************************************************************
...@@ -984,6 +983,7 @@ VLCView::VLCView(BRect bounds, vout_thread_t *p_vout_instance ) ...@@ -984,6 +983,7 @@ VLCView::VLCView(BRect bounds, vout_thread_t *p_vout_instance )
fIgnoreDoubleClick(false) fIgnoreDoubleClick(false)
{ {
p_vout = p_vout_instance; p_vout = p_vout_instance;
fMouseHideTimeout = var_GetInteger(p_vout, "mouse-hide-timeout") * 1000;
SetViewColor(B_TRANSPARENT_32_BIT); SetViewColor(B_TRANSPARENT_32_BIT);
} }
...@@ -1169,7 +1169,7 @@ VLCView::Pulse() ...@@ -1169,7 +1169,7 @@ VLCView::Pulse()
if (!fCursorHidden) if (!fCursorHidden)
{ {
if (fCursorInside if (fCursorInside
&& mdate() - fLastMouseMovedTime > MOUSE_IDLE_TIMEOUT) && mdate() - fLastMouseMovedTime > fMouseHideTimeout)
{ {
be_app->ObscureCursor(); be_app->ObscureCursor();
fCursorHidden = true; fCursorHidden = true;
......
...@@ -122,6 +122,7 @@ class VLCView : public BView ...@@ -122,6 +122,7 @@ class VLCView : public BView
vout_thread_t *p_vout; vout_thread_t *p_vout;
bigtime_t fLastMouseMovedTime; bigtime_t fLastMouseMovedTime;
int fMouseHideTimeout;
bool fCursorHidden; bool fCursorHidden;
bool fCursorInside; bool fCursorInside;
bool fIgnoreDoubleClick; bool fIgnoreDoubleClick;
......
...@@ -183,6 +183,8 @@ static int OpenVideo( vlc_object_t *p_this ) ...@@ -183,6 +183,8 @@ static int OpenVideo( vlc_object_t *p_this )
p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->b_cursor_hidden = 0;
p_vout->p_sys->i_lastmoved = mdate(); 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, "video-title", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
var_Create( p_vout, "disable-screensaver", VLC_VAR_BOOL | 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 ) ...@@ -475,7 +477,8 @@ static int Manage( vout_thread_t *p_vout )
* Pointer change * Pointer change
*/ */
if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && 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; POINT point;
HWND hwnd; HWND hwnd;
......
...@@ -261,6 +261,8 @@ static int OpenVideo( vlc_object_t *p_this ) ...@@ -261,6 +261,8 @@ static int OpenVideo( vlc_object_t *p_this )
p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->b_cursor_hidden = 0;
p_vout->p_sys->i_lastmoved = mdate(); 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 */ /* Set main window's size */
p_vout->p_sys->i_window_width = p_vout->i_window_width; p_vout->p_sys->i_window_width = p_vout->i_window_width;
...@@ -638,7 +640,8 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -638,7 +640,8 @@ static int Manage( vout_thread_t *p_vout )
* Pointer change * Pointer change
*/ */
if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && 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; POINT point;
HWND hwnd; HWND hwnd;
......
...@@ -118,6 +118,8 @@ static int OpenVideo( vlc_object_t *p_this ) ...@@ -118,6 +118,8 @@ static int OpenVideo( vlc_object_t *p_this )
p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->b_cursor_hidden = 0;
p_vout->p_sys->i_lastmoved = mdate(); 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 */ /* Set main window's size */
p_vout->p_sys->i_window_width = p_vout->i_window_width; p_vout->p_sys->i_window_width = p_vout->i_window_width;
...@@ -337,7 +339,8 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -337,7 +339,8 @@ static int Manage( vout_thread_t *p_vout )
* Pointer change * Pointer change
*/ */
if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && 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; POINT point;
HWND hwnd; HWND hwnd;
......
...@@ -72,6 +72,7 @@ struct vout_sys_t ...@@ -72,6 +72,7 @@ struct vout_sys_t
/* Mouse */ /* Mouse */
volatile vlc_bool_t b_cursor_hidden; volatile vlc_bool_t b_cursor_hidden;
volatile mtime_t i_lastmoved; volatile mtime_t i_lastmoved;
mtime_t i_mouse_hide_timeout;
/* Misc */ /* Misc */
vlc_bool_t b_on_top_change; vlc_bool_t b_on_top_change;
......
...@@ -231,6 +231,8 @@ static int OpenVideo ( vlc_object_t *p_this ) ...@@ -231,6 +231,8 @@ static int OpenVideo ( vlc_object_t *p_this )
p_vout->p_sys->b_cursor_hidden = 0; p_vout->p_sys->b_cursor_hidden = 0;
p_vout->p_sys->i_lastmoved = mdate(); 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 */ /* Set main window's size */
p_vout->p_sys->i_window_width = p_vout->i_window_width; p_vout->p_sys->i_window_width = p_vout->i_window_width;
...@@ -565,7 +567,8 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -565,7 +567,8 @@ static int Manage( vout_thread_t *p_vout )
* Pointer change * Pointer change
*/ */
if( p_vout->b_fullscreen && !p_vout->p_sys->b_cursor_hidden && 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; POINT point;
HWND hwnd; HWND hwnd;
......
...@@ -390,7 +390,8 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -390,7 +390,8 @@ static int Manage( vout_thread_t *p_vout )
/* Pointer change */ /* Pointer change */
// if( ! p_vout->p_sys->b_cursor_autohidden && // 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 */ // /* Hide the mouse automatically */
// p_vout->p_sys->b_cursor_autohidden = 1; // p_vout->p_sys->b_cursor_autohidden = 1;
......
...@@ -77,6 +77,7 @@ struct vout_sys_t ...@@ -77,6 +77,7 @@ struct vout_sys_t
vlc_bool_t b_cursor; vlc_bool_t b_cursor;
vlc_bool_t b_cursor_autohidden; vlc_bool_t b_cursor_autohidden;
mtime_t i_lastmoved; mtime_t i_lastmoved;
mtime_t i_mouse_hide_timeout;
mtime_t i_lastpressed; /* to track dbl-clicks */ mtime_t i_lastpressed; /* to track dbl-clicks */
}; };
...@@ -227,6 +228,8 @@ static int Open ( vlc_object_t *p_this ) ...@@ -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 = 1;
p_vout->p_sys->b_cursor_autohidden = 0; 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_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 ) ) if( OpenDisplay( p_vout ) )
{ {
...@@ -625,7 +628,8 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -625,7 +628,8 @@ static int Manage( vout_thread_t *p_vout )
/* Pointer change */ /* Pointer change */
if( ! p_vout->p_sys->b_cursor_autohidden && 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 */ /* Hide the mouse automatically */
p_vout->p_sys->b_cursor_autohidden = 1; p_vout->p_sys->b_cursor_autohidden = 1;
......
...@@ -342,6 +342,8 @@ int E_(Activate) ( vlc_object_t *p_this ) ...@@ -342,6 +342,8 @@ int E_(Activate) ( vlc_object_t *p_this )
/* Create blank cursor (for mouse cursor autohiding) */ /* Create blank cursor (for mouse cursor autohiding) */
p_vout->p_sys->i_time_mouse_last_moved = mdate(); 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; p_vout->p_sys->b_mouse_pointer_visible = 1;
CreateCursor( p_vout ); CreateCursor( p_vout );
...@@ -1553,7 +1555,8 @@ static int ManageVideo( vout_thread_t *p_vout ) ...@@ -1553,7 +1555,8 @@ static int ManageVideo( vout_thread_t *p_vout )
} }
/* Autohide Cursour */ /* 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 */ /* Hide the mouse automatically */
if( p_vout->p_sys->b_mouse_pointer_visible ) if( p_vout->p_sys->b_mouse_pointer_visible )
......
...@@ -252,6 +252,7 @@ struct vout_sys_t ...@@ -252,6 +252,7 @@ struct vout_sys_t
/* Mouse pointer properties */ /* Mouse pointer properties */
vlc_bool_t b_mouse_pointer_visible; vlc_bool_t b_mouse_pointer_visible;
mtime_t i_time_mouse_last_moved; /* used to auto-hide pointer*/ 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 */ Cursor blank_cursor; /* the hidden cursor */
mtime_t i_time_button_last_pressed; /* to track dbl-clicks */ mtime_t i_time_button_last_pressed; /* to track dbl-clicks */
Pixmap cursor_pixmap; Pixmap cursor_pixmap;
......
...@@ -399,6 +399,12 @@ static const char *ppsz_align_descriptions[] = ...@@ -399,6 +399,12 @@ static const char *ppsz_align_descriptions[] =
#define VIDEO_TITLE_POSITION_LONGTEXT N_( \ #define VIDEO_TITLE_POSITION_LONGTEXT N_( \
"Place on video where to display the title (default bottom center).") "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 int pi_pos_values[] = { 0, 1, 2, 4, 8, 5, 6, 9, 10 };
static const char *ppsz_pos_descriptions[] = static const char *ppsz_pos_descriptions[] =
{ N_("Center"), N_("Left"), N_("Right"), N_("Top"), N_("Bottom"), { N_("Center"), N_("Left"), N_("Right"), N_("Top"), N_("Bottom"),
...@@ -1485,6 +1491,9 @@ vlc_module_begin(); ...@@ -1485,6 +1491,9 @@ vlc_module_begin();
VIDEO_TITLE_TIMEOUT_LONGTEXT, VLC_FALSE ); VIDEO_TITLE_TIMEOUT_LONGTEXT, VLC_FALSE );
add_integer( "video-title-position", 8, NULL, VIDEO_TITLE_POSITION_TEXT, add_integer( "video-title-position", 8, NULL, VIDEO_TITLE_POSITION_TEXT,
VIDEO_TITLE_POSITION_LONGTEXT, VLC_FALSE ); 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 ); change_integer_list( pi_pos_values, ppsz_pos_descriptions, 0 );
set_section( N_("Snapshot") , NULL ); set_section( N_("Snapshot") , NULL );
......
...@@ -287,6 +287,9 @@ void vout_IntfInit( vout_thread_t *p_vout ) ...@@ -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-x", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_vout, "video-y", 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->b_title_show = var_CreateGetBool( p_vout, "video-title-show" );
p_vout->i_title_timeout = p_vout->i_title_timeout =
(mtime_t)var_CreateGetInteger( p_vout, "video-title-timeout" ); (mtime_t)var_CreateGetInteger( p_vout, "video-title-timeout" );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment