Bitcoin Core 28.99.0
P2P Digital Currency
macdockiconhandler.mm
Go to the documentation of this file.
1// Copyright (c) 2011-2019 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
6
7#include <AppKit/AppKit.h>
8#include <objc/runtime.h>
9
11
12bool dockClickHandler(id self, SEL _cmd, ...) {
13 Q_UNUSED(self)
14 Q_UNUSED(_cmd)
15
17
18 // Return NO (false) to suppress the default macOS actions
19 return false;
20}
21
23 Class delClass = (Class)[[[NSApplication sharedApplication] delegate] class];
24 SEL shouldHandle = sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:");
25 class_replaceMethod(delClass, shouldHandle, (IMP)dockClickHandler, "B@:");
26}
27
29{
31}
32
34{
35 if (!s_instance)
37 return s_instance;
38}
39
41{
42 delete s_instance;
43}
44
51{
52 [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
53}
macOS-specific Dock icon handler.
static MacDockIconHandler * instance()
static MacDockIconHandler * s_instance
void setupDockClickHandler()
bool dockClickHandler(id self, SEL _cmd,...)
void ForceActivation()
Force application activation on macOS.