]> git.sesse.net Git - vlc/commitdiff
* skins2/src/skin_main.cpp: Fixed a crash in the preferences, reported by Trax
authorOlivier Teulière <ipkiss@videolan.org>
Tue, 15 Aug 2006 11:04:13 +0000 (11:04 +0000)
committerOlivier Teulière <ipkiss@videolan.org>
Tue, 15 Aug 2006 11:04:13 +0000 (11:04 +0000)
modules/gui/skins2/src/skin_main.cpp

index 1a4874471bcc66bda41738a25a863f3a57c2c364..0d31f70165f2a9af1596714da9175675970b5773 100644 (file)
@@ -365,16 +365,20 @@ static int onSystrayChange( vlc_object_t *pObj, const char *pVariable,
         return VLC_EGENERIC;
     }
 
-    AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
-    if( newVal.b_bool )
+    // Check that we found the correct interface (same check as for the demux)
+    if( var_Type( pIntf, "skin-to-load" ) == VLC_VAR_STRING )
     {
-        CmdAddInTray *pCmd = new CmdAddInTray( pIntf );
-        pQueue->push( CmdGenericPtr( pCmd ) );
-    }
-    else
-    {
-        CmdRemoveFromTray *pCmd = new CmdRemoveFromTray( pIntf );
-        pQueue->push( CmdGenericPtr( pCmd ) );
+        AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
+        if( newVal.b_bool )
+        {
+            CmdAddInTray *pCmd = new CmdAddInTray( pIntf );
+            pQueue->push( CmdGenericPtr( pCmd ) );
+        }
+        else
+        {
+            CmdRemoveFromTray *pCmd = new CmdRemoveFromTray( pIntf );
+            pQueue->push( CmdGenericPtr( pCmd ) );
+        }
     }
 
     vlc_object_release( pIntf );
@@ -395,16 +399,20 @@ static int onTaskBarChange( vlc_object_t *pObj, const char *pVariable,
         return VLC_EGENERIC;
     }
 
-    AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
-    if( newVal.b_bool )
+    // Check that we found the correct interface (same check as for the demux)
+    if( var_Type( pIntf, "skin-to-load" ) == VLC_VAR_STRING )
     {
-        CmdAddInTaskBar *pCmd = new CmdAddInTaskBar( pIntf );
-        pQueue->push( CmdGenericPtr( pCmd ) );
-    }
-    else
-    {
-        CmdRemoveFromTaskBar *pCmd = new CmdRemoveFromTaskBar( pIntf );
-        pQueue->push( CmdGenericPtr( pCmd ) );
+        AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
+        if( newVal.b_bool )
+        {
+            CmdAddInTaskBar *pCmd = new CmdAddInTaskBar( pIntf );
+            pQueue->push( CmdGenericPtr( pCmd ) );
+        }
+        else
+        {
+            CmdRemoveFromTaskBar *pCmd = new CmdRemoveFromTaskBar( pIntf );
+            pQueue->push( CmdGenericPtr( pCmd ) );
+        }
     }
 
     vlc_object_release( pIntf );