mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
cocoa: add application icon to the Dock when run from CLI
Application icon was added to the Dock only when run inside of a bundle. That was handled automatically by OS X using the Info.plist definition. To add the Application icon when run as a CLI program, I used the samme approach in the X11 code and loaded the icon as a static binary blob inside of mpv's binary. This is the simplest approach as it avoid headackes when relocating the binary and such.
This commit is contained in:
@@ -468,6 +468,21 @@ static bool bundle_started_from_finder(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
static const char macosx_icon[] =
|
||||
#include "osdep/macosx_icon.inc"
|
||||
;
|
||||
|
||||
static void set_application_icon(NSApplication *app)
|
||||
{
|
||||
NSData *icon_data = [NSData dataWithBytesNoCopy:(void *)macosx_icon
|
||||
length:sizeof(macosx_icon)
|
||||
freeWhenDone:NO];
|
||||
NSImage *icon = [[NSImage alloc] initWithData:icon_data];
|
||||
[app setApplicationIconImage:icon];
|
||||
[icon release];
|
||||
[icon_data release];
|
||||
}
|
||||
|
||||
void macosx_finder_args_preinit(int *argc, char ***argv)
|
||||
{
|
||||
Application *app = mpv_shared_app();
|
||||
@@ -489,6 +504,7 @@ void macosx_finder_args_preinit(int *argc, char ***argv)
|
||||
*argc = cocoa_argc;
|
||||
*argv = cocoa_argv;
|
||||
} else {
|
||||
set_application_icon(app);
|
||||
for (int i = 0; i < *argc; i++ ) {
|
||||
NSString *arg = [NSString stringWithUTF8String:(*argv)[i]];
|
||||
[app.argumentsList addObject:arg];
|
||||
|
||||
Reference in New Issue
Block a user