X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finterface%2Finteraction.c;h=e0920eaf50d62a70f0ff56f8e635f728233f828e;hb=688f0a8d8913f20ac5d3e27bf4f2bbe35c9f5de7;hp=568d8a3b4c36886a5ba37d673add245d6042df88;hpb=5277e0fe73d6dd16254017ce83c005d72a9fc33d;p=vlc diff --git a/src/interface/interaction.c b/src/interface/interaction.c index 568d8a3b4c..e0920eaf50 100644 --- a/src/interface/interaction.c +++ b/src/interface/interaction.c @@ -276,7 +276,7 @@ int __intf_UserLoginPassword( vlc_object_t *p_this, p_new->i_type = INTERACT_DIALOG_TWOWAY; p_new->psz_title = strdup( psz_title ); p_new->psz_description = strdup( psz_description ); - p_new->psz_default_button = strdup( _("Ok" ) ); + p_new->psz_default_button = strdup( _("OK" ) ); p_new->psz_alternate_button = strdup( _("Cancel" ) ); p_new->i_flags = DIALOG_LOGIN_PW_OK_CANCEL; @@ -362,7 +362,8 @@ interaction_t * interaction_Init( libvlc_int_t *p_libvlc ) /* Make sure we haven't yet created an interaction object */ assert( libvlc_priv(p_libvlc)->p_interaction == NULL ); - p_interaction = vlc_custom_create( p_libvlc, sizeof( *p_interaction ), + p_interaction = vlc_custom_create( VLC_OBJECT(p_libvlc), + sizeof( *p_interaction ), VLC_OBJECT_GENERIC, "interaction" ); if( !p_interaction ) return NULL; @@ -387,6 +388,16 @@ interaction_t * interaction_Init( libvlc_int_t *p_libvlc ) return p_interaction; } +void interaction_Destroy( interaction_t *p_interaction ) +{ + if( !p_interaction ) + return; + + vlc_object_kill( p_interaction ); + vlc_thread_join( p_interaction ); + vlc_object_release( p_interaction ); +} + /********************************************************************** * The following functions are local **********************************************************************/ @@ -463,7 +474,11 @@ static int DialogSend( vlc_object_t *p_this, interaction_dialog_t *p_dialog ) if( p_dialog->i_id == 0 ) p_dialog->i_id = ++p_interaction->i_last_id; - if( p_this->i_flags & OBJECT_FLAGS_NOINTERACT ) return VLC_EGENERIC; + if( p_this->i_flags & OBJECT_FLAGS_NOINTERACT ) + { + vlc_object_release( p_interaction ); + return VLC_EGENERIC; + } if( config_GetInt( p_this, "interact" ) || p_dialog->i_flags & DIALOG_BLOCKING_ERROR ||