]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/interaction.m
vcdx: Fix memleaks.
[vlc] / modules / gui / macosx / interaction.m
index 1d5f7170f5b29a462e08deea69df79f075c469d0..4dd7fda7dd25abb6af53b00fff093e2b3068f3bb 100644 (file)
 - (void)sheetDidEnd:(NSWindow *)o_sheet returnCode:(int)i_return
     contextInfo:(void *)o_context
 {
-    vlc_mutex_lock( &p_dialog->p_interaction->object_lock );
+    vlc_object_lock( p_dialog->p_interaction );
     if( i_return == NSAlertDefaultReturn )
     {
         p_dialog->i_return = DIALOG_OK_YES;
         p_dialog->i_return = DIALOG_CANCELLED;
     }
     p_dialog->i_status = ANSWERED_DIALOG;
-    vlc_mutex_unlock( &p_dialog->p_interaction->object_lock );
+    vlc_object_unlock( p_dialog->p_interaction );
 }
 
 -(void)updateDialog
 
 -(void)hideDialog
 {
-    msg_Dbg( p_intf, "hide event" );
+    msg_Dbg( p_intf, "hide event %p", self );
     if( p_dialog->i_flags & DIALOG_USER_PROGRESS )
     {
-        [NSApp endSheet: o_prog_win];
-        [o_prog_win close];
+        if([o_prog_win isVisible])
+        {
+            [NSApp endSheet: o_prog_win];
+            [o_prog_win close];
+        }
     }
     if( p_dialog->i_flags & DIALOG_LOGIN_PW_OK_CANCEL )
     {
-        [NSApp endSheet: o_auth_win];
-        [o_auth_win close];
+        if([o_auth_win isVisible])
+        {
+            [NSApp endSheet: o_auth_win];
+            [o_auth_win close];
+        }
     }
     if( p_dialog->i_flags & DIALOG_PSZ_INPUT_OK_CANCEL )
     {
-        [NSApp endSheet: o_input_win];
-        [o_input_win close];
+        if([o_input_win isVisible])
+        {
+            [NSApp endSheet: o_input_win];
+            [o_input_win close];
+        }
     }
     if( p_dialog->i_flags & DIALOG_INTF_PROGRESS )
     {
 - (IBAction)cancelAndClose:(id)sender
 {
     /* tell the core that the dialog was cancelled in a yes/no-style dialogue */
-    vlc_mutex_lock( &p_dialog->p_interaction->object_lock );
+    vlc_object_lock( p_dialog->p_interaction );
     p_dialog->i_return = DIALOG_CANCELLED;
     p_dialog->i_status = ANSWERED_DIALOG;
-    vlc_mutex_unlock( &p_dialog->p_interaction->object_lock );
+    vlc_object_unlock( p_dialog->p_interaction );
     msg_Dbg( p_intf, "dialog cancelled" );
 }
 
 {
     /* tell core that the user wishes to cancel the dialogue
      * Use this function if cancelling is optionally like in the progress-dialogue */
-    vlc_mutex_lock( &p_dialog->p_interaction->object_lock );
-    p_dialog->b_cancelled = VLC_TRUE;
-    vlc_mutex_unlock( &p_dialog->p_interaction->object_lock );
+    vlc_object_lock( p_dialog->p_interaction );
+    p_dialog->b_cancelled = true;
+    vlc_object_unlock( p_dialog->p_interaction );
     msg_Dbg( p_intf, "cancelling dialog, will close it later on" );
 }
 
 - (IBAction)okayAndClose:(id)sender
 {
     msg_Dbg( p_intf, "running okayAndClose" );
-    vlc_mutex_lock( &p_dialog->p_interaction->object_lock );
+    vlc_object_lock( p_dialog->p_interaction );
     if( p_dialog->i_flags == DIALOG_LOGIN_PW_OK_CANCEL )
     {
         p_dialog->psz_returned[0] = strdup( [[o_auth_login_fld stringValue] UTF8String] );
         p_dialog->psz_returned[0] = strdup( [[o_input_fld stringValue] UTF8String] );
     p_dialog->i_return = DIALOG_OK_YES;
     p_dialog->i_status = ANSWERED_DIALOG;
-    vlc_mutex_unlock( &p_dialog->p_interaction->object_lock );
+    vlc_object_unlock( p_dialog->p_interaction );
     msg_Dbg( p_intf, "dialog acknowledged" );
 }