Commit 07fcd250 authored by Rafaël Carré's avatar Rafaël Carré

OSX: don't open items twice

Closes: #8611
parent 9925a34e
...@@ -82,6 +82,8 @@ struct intf_sys_t ...@@ -82,6 +82,8 @@ struct intf_sys_t
{ {
intf_thread_t *p_intf; /* The main intf object */ intf_thread_t *p_intf; /* The main intf object */
input_thread_t *p_current_input, *p_input_changed; input_thread_t *p_current_input, *p_input_changed;
BOOL launched; /* finishedLaunching */
int items_at_launch; /* items in playlist after launch */
id o_mainmenu; /* VLCMainMenu */ id o_mainmenu; /* VLCMainMenu */
id o_prefs; /* VLCPrefs */ id o_prefs; /* VLCPrefs */
id o_sprefs; /* VLCSimplePrefs */ id o_sprefs; /* VLCSimplePrefs */
......
...@@ -782,8 +782,18 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -782,8 +782,18 @@ static VLCMain *_o_sharedMainInstance = nil;
nib_main_loaded = TRUE; nib_main_loaded = TRUE;
} }
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
playlist_t * p_playlist = pl_Get(VLCIntf);
PL_LOCK;
items_at_launch = p_playlist->p_local_category->i_children;
PL_UNLOCK;
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{ {
launched = YES;
if (!p_intf) if (!p_intf)
return; return;
...@@ -1047,9 +1057,19 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -1047,9 +1057,19 @@ static VLCMain *_o_sharedMainInstance = nil;
- (void)application:(NSApplication *)o_app openFiles:(NSArray *)o_names - (void)application:(NSApplication *)o_app openFiles:(NSArray *)o_names
{ {
BOOL b_autoplay = config_GetInt(VLCIntf, "macosx-autoplay");
char *psz_uri = vlc_path2uri([[o_names objectAtIndex:0] UTF8String], "file"); char *psz_uri = vlc_path2uri([[o_names objectAtIndex:0] UTF8String], "file");
if (launched == NO) {
if (items_at_launch) {
int items = [o_names count];
if (items > items_at_launch)
items_at_launch = 0;
else
items_at_launch -= items;
return;
}
}
// try to add file as subtitle // try to add file as subtitle
if ([o_names count] == 1 && psz_uri) { if ([o_names count] == 1 && psz_uri) {
input_thread_t * p_input = pl_CurrentInput(VLCIntf); input_thread_t * p_input = pl_CurrentInput(VLCIntf);
...@@ -1077,10 +1097,7 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -1077,10 +1097,7 @@ static VLCMain *_o_sharedMainInstance = nil;
[o_result addObject: o_dic]; [o_result addObject: o_dic];
} }
if (b_autoplay) [o_playlist appendArray: o_result atPos: -1 enqueue: !config_GetInt(VLCIntf, "macosx-autoplay")];
[o_playlist appendArray: o_result atPos: -1 enqueue: NO];
else
[o_playlist appendArray: o_result atPos: -1 enqueue: YES];
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment