]> git.sesse.net Git - vlc/commitdiff
Merge commit 'videolan/master'
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sun, 25 Jan 2009 18:31:21 +0000 (20:31 +0200)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sun, 25 Jan 2009 18:31:21 +0000 (20:31 +0200)
modules/control/globalhotkeys/x11.c
src/libvlc.c

index 74f9bcb525ff9fa4831077089ee6de1cee6004b9..f0bb346ecdac76439d895172e2fe402f502a5e71 100644 (file)
@@ -72,6 +72,7 @@ static void Mapping( intf_thread_t *p_intf );
 static void Register( intf_thread_t *p_intf );
 static void Unregister( intf_thread_t *p_intf );
 static void *Thread( void *p_data );
+static int X11ErrorHandler( Display *, XErrorEvent * );
 
 /*****************************************************************************
  * Open:
@@ -84,6 +85,7 @@ static int Open( vlc_object_t *p_this )
     Display *p_display = XOpenDisplay( NULL );
     if( !p_display )
         return VLC_EGENERIC;
+    XSetErrorHandler( X11ErrorHandler );
 
     p_intf->p_sys = p_sys = malloc( sizeof(*p_sys) );
     if( !p_sys )
@@ -125,8 +127,24 @@ static void Close( vlc_object_t *p_this )
 }
 
 /*****************************************************************************
- * Thread:
+ *
  *****************************************************************************/
+static int X11ErrorHandler( Display *p_display, XErrorEvent *p_event )
+{
+#if 0
+    char psz_txt[1024];
+
+    XGetErrorText( p_display, p_event->error_code, psz_txt, sizeof(psz_txt) );
+    fprintf( stderr,
+             "[????????] globalhotkeys interface error: X11 request %u.%u failed "
+              "with error code %u:\n %s\n",
+             p_event->request_code, p_event->minor_code, p_event->error_code, psz_txt );
+#else
+    VLC_UNUSED(p_display); VLC_UNUSED(p_event);
+#endif
+    /* Ignore them */
+    return 0;
+}
 static unsigned GetModifier( Display *p_display, KeySym sym )
 {
     static const unsigned pi_mask[8] = {
@@ -357,7 +375,6 @@ static void *Thread( void *p_data )
         }
     }
 
-    vlc_restorecancel( canc );
     return NULL;
 }
 
index ecfd6f0bd6b026a0f9c8b83ba1ed341091b53a13..e9e43bb5a5643113b83a00a0579a634f0c459e5b 100644 (file)
@@ -898,9 +898,8 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
      * Always load the hotkeys interface if it exists
      */
     libvlc_InternalAddIntf( p_libvlc, "hotkeys,none" );
-#ifdef WIN32
-    libvlc_InternalAddIntf( p_libvlc, "globalhotkeys,none" );
-#endif
+    if( module_exists( "globalhotkeys" ) )
+        libvlc_InternalAddIntf( p_libvlc, "globalhotkeys,none" );
 
 #ifdef HAVE_DBUS
     /* loads dbus control interface if in one-instance mode