[vlc-commits] macosx: bookmarks: fix logic for closing edit panel

David Fuhrmann git at videolan.org
Sun Oct 11 18:45:41 CEST 2020


vlc/vlc-3.0 | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Wed Sep  9 14:37:30 2020 +0200| [e1aa5b526fe13ab4fc8db26449e2238befeb6149] | committer: David Fuhrmann

macosx: bookmarks: fix logic for closing edit panel

Always close panel, even in error cases. Make sure failure messages
are actually shown to the user.

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=e1aa5b526fe13ab4fc8db26449e2238befeb6149
---

 modules/gui/macosx/VLCBookmarksWindowController.m | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/modules/gui/macosx/VLCBookmarksWindowController.m b/modules/gui/macosx/VLCBookmarksWindowController.m
index 16ff42a5ea..e80f2dbf69 100644
--- a/modules/gui/macosx/VLCBookmarksWindowController.m
+++ b/modules/gui/macosx/VLCBookmarksWindowController.m
@@ -199,11 +199,12 @@
 
 - (IBAction)edit_ok:(id)sender
 {
-    /* save field contents and close sheet */
-     seekpoint_t **pp_bookmarks;
-    int i_bookmarks, i;
     input_thread_t * p_input = pl_CurrentInput(getIntf());
 
+    /* save field contents and close sheet */
+    [NSApp endSheet: _editBookmarksWindow];
+    [_editBookmarksWindow close];
+
     if (!p_input) {
         NSBeginCriticalAlertSheet(_NS("No input"), _NS("OK"), @"", @"", self.window, nil, nil, nil, nil, @"%@",_NS("No input found. A stream must be playing or paused for bookmarks to work."));
         return;
@@ -214,12 +215,15 @@
         return;
     }
 
+    seekpoint_t **pp_bookmarks = NULL;
+    int i_bookmarks = 0;
     if (input_Control(p_input, INPUT_GET_BOOKMARKS, &pp_bookmarks, &i_bookmarks) != VLC_SUCCESS) {
+        msg_Warn(getIntf(), "Cannot get bookmarks");
         vlc_object_release(p_input);
         return;
     }
 
-    i = [_dataTable selectedRow];
+    int i = [_dataTable selectedRow];
 
     free(pp_bookmarks[i]->psz_name);
 
@@ -235,21 +239,16 @@
         pp_bookmarks[i]->i_time_offset = 1000000LL * ([[components firstObject] longLongValue] * 3600 + [[components objectAtIndex:1] longLongValue] * 60 + [[components objectAtIndex:2] floatValue]);
     else {
         msg_Err(getIntf(), "Invalid string format for time");
-        goto clear;
     }
 
     if (input_Control(p_input, INPUT_CHANGE_BOOKMARK, pp_bookmarks[i], i) != VLC_SUCCESS) {
-        msg_Warn(getIntf(), "Unable to change the bookmark");
-        goto clear;
+        msg_Err(getIntf(), "Unable to change the bookmark");
     }
 
     [_dataTable reloadData];
-    vlc_object_release(p_input);
 
-    [NSApp endSheet: _editBookmarksWindow];
-    [_editBookmarksWindow close];
+    vlc_object_release(p_input);
 
-clear:
     // Clear the bookmark list
     for (int i = 0; i < i_bookmarks; i++)
         vlc_seekpoint_Delete(pp_bookmarks[i]);



More information about the vlc-commits mailing list