Mac OS X: Also add "Start new instance" to popup menu on app icon

This commit is contained in:
Jonathan Campbell
2021-06-22 23:13:10 -07:00
parent b6ba06f0ef
commit 94274e56ff
2 changed files with 33 additions and 1 deletions

View File

@@ -196,6 +196,14 @@ void menu_macosx_set_menuobj(DOSBoxMenu *new_altMenu) {
}
}
- (void)DOSBoxXMenuActionNewInstance:(id)sender
{
(void)sender;
if (is_paused || MAPPER_IsRunning() || GUI_IsRunning()) return;
void NewInstanceEvent(bool pressed);
NewInstanceEvent(true);
}
- (void)DOSBoxXMenuActionMapper:(id)sender
{
(void)sender;
@@ -469,6 +477,30 @@ void macosx_init_dock_menu(void) {
[item release];
}
{
bool enable = false;
extern std::string MacOSXEXEPath;
if (!MacOSXEXEPath.empty()) {
if (MacOSXEXEPath.at(0) == '/') {
enable = true;
}
}
if (enable) {
{
NSMenuItem *item = [NSMenuItem separatorItem];
[menu addItem:item];
[item release];
}
NSString *title = [[NSString alloc] initWithUTF8String: "Start new instance"];
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:@selector(DOSBoxXMenuActionNewInstance:) keyEquivalent:@""];
[menu addItem:item];
[title release];
[item release];
}
}
sdl1_hax_set_dock_menu(menu);
[menu release];

View File

@@ -1637,7 +1637,7 @@ bool CheckQuit(void) {
return true;
}
static void NewInstanceEvent(bool pressed) {
void NewInstanceEvent(bool pressed) {
if (!pressed) return;
#if defined(MACOSX)
pid_t p = fork();