X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finterface%2Finteraction.c;h=4b0f0b79e7ce58653900b9ee28792de4b0a7c718;hb=88f22433f672be32b1488e22a5b30a693ccff500;hp=293dc330e11aa65b6e39467d7e6d1c1d1b5ce759;hpb=99839e32157651fc9dcc1d6b0f6c2af60436b38d;p=vlc diff --git a/src/interface/interaction.c b/src/interface/interaction.c index 293dc330e1..4b0f0b79e7 100644 --- a/src/interface/interaction.c +++ b/src/interface/interaction.c @@ -558,8 +558,8 @@ static int DialogSend( vlc_object_t *p_this, interaction_dialog_t *p_dialog ) static void* InteractionLoop( vlc_object_t *p_this ) { - int i; interaction_t *p_interaction = (interaction_t*) p_this; + int canc = vlc_savecancel (); vlc_object_lock( p_this ); while( vlc_object_alive( p_this ) ) @@ -570,12 +570,13 @@ static void* InteractionLoop( vlc_object_t *p_this ) vlc_object_unlock( p_this ); /* Remove all dialogs - Interfaces must be able to clean up their data */ - for( i = p_interaction->i_dialogs -1 ; i >= 0; i-- ) + for( int i = p_interaction->i_dialogs -1 ; i >= 0; i-- ) { interaction_dialog_t * p_dialog = p_interaction->pp_dialogs[i]; DialogDestroy( p_dialog ); REMOVE_ELEM( p_interaction->pp_dialogs, p_interaction->i_dialogs, i ); } + vlc_restorecancel (canc); return NULL; }