]> git.sesse.net Git - vlc/commitdiff
msw: add support for --[no]-mouse-events and --[no]-keyboard-events
authorErwan Tulou <erwan10@videolan.org>
Sun, 28 Feb 2010 16:25:47 +0000 (17:25 +0100)
committerErwan Tulou <erwan10@videolan.org>
Mon, 8 Mar 2010 18:44:58 +0000 (19:44 +0100)
modules/video_output/msw/events.c

index a65fc64cd5fce4564eb578bd7185c302fcbc0fd3..1945b129c00296b3880758a5e22d1dfa3c9612b0 100644 (file)
@@ -129,6 +129,18 @@ static long FAR PASCAL DirectXEventProc( HWND, UINT, WPARAM, LPARAM );
 
 static int DirectXConvertKey( int i_key );
 
+static inline bool isMouseEvent( WPARAM type )
+{
+    return type >= WM_MOUSEFIRST &&
+           type <= WM_MOUSELAST;
+}
+
+static inline bool isKeyEvent( WPARAM type )
+{
+    return type >= WM_KEYFIRST &&
+           type <= WM_KEYLAST;
+}
+
 /*****************************************************************************
  * EventThread: Create video window & handle its messages
  *****************************************************************************
@@ -146,6 +158,9 @@ static void *EventThread( void *p_this )
     HMODULE hkernel32;
     int canc = vlc_savecancel ();
 
+    bool b_mouse_support = var_InheritBool( p_event->vd, "mouse-events" );
+    bool b_key_support = var_InheritBool( p_event->vd, "keyboard-events" );
+
     vlc_mutex_lock( &p_event->lock );
     /* Create a window for the video */
     /* Creating a window under Windows also initializes the thread's event
@@ -204,6 +219,12 @@ static void *EventThread( void *p_this )
         if( b_done )
             break;
 
+        if( !b_mouse_support && isMouseEvent( msg.message ) )
+            continue;
+
+        if( !b_key_support && isKeyEvent( msg.message ) )
+            continue;
+
         /* */
         switch( msg.message )
         {