FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cefpython/src/client_handler/util_mac.mm at cefpython53 · 2php/cefpython · GitHub
2php
cefpython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cefpython
/
src
/
client_handler
/
util_mac.mm
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (50 loc) · 1.85 KB
Breadcrumbs
cefpython
/
src
/
client_handler
/
util_mac.mm
Copy path
File metadata and controls
66 lines (50 loc) · 1.85 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//
Copyright (c) 2013 The Chromium Embedded Framework Authors. All rights
//
reserved. Use of this source code is governed by a BSD-style license that
//
can be found in the LICENSE file.
#
import
"
util_mac.h
"
#
import
<
Cocoa/Cocoa.h
>
#
include
<
objc/runtime.h
>
#
include
"
include/cef_app.h
"
#
include
"
include/cef_application_mac.h
"
namespace
{
BOOL
g_handling_send_event =
false
;
}
//
namespace
//
Add the necessary CrAppControlProtocol
//
functionality to NSApplication using categories and swizzling.
@interface
NSApplication
(CEFPythonApplication)
- (
BOOL
)
isHandlingSendEvent
;
- (
void
)
setHandlingSendEvent
:
(
BOOL
)
handlingSendEvent
;
- (
void
)
_swizzled_sendEvent
:
(
NSEvent
*)
event
;
- (
void
)
_swizzled_terminate
:
(
id
)
sender
;
@end
@implementation
NSApplication
(CEFPythonApplication)
//
This selector is called very early during the application initialization.
+ (
void
)
load
{
//
Swap NSApplication::sendEvent with _swizzled_sendEvent.
Method
original =
class_getInstanceMethod
(self,
@selector
(
sendEvent
));
Method
swizzled =
class_getInstanceMethod
(self,
@selector
(
_swizzled_sendEvent
));
method_exchangeImplementations
(original, swizzled);
Method
originalTerm =
class_getInstanceMethod
(self,
@selector
(
terminate:
));
Method
swizzledTerm =
class_getInstanceMethod
(self,
@selector
(
_swizzled_terminate:
));
method_exchangeImplementations
(originalTerm, swizzledTerm);
}
- (
BOOL
)
isHandlingSendEvent
{
return
g_handling_send_event;
}
- (
void
)
setHandlingSendEvent
:
(
BOOL
)
handlingSendEvent
{
g_handling_send_event = handlingSendEvent;
}
- (
void
)
_swizzled_sendEvent
:
(
NSEvent
*)
event
{
CefScopedSendingEvent sendingEventScoper;
//
Calls NSApplication::sendEvent due to the swizzling.
[
self
_swizzled_sendEvent:
event];
}
- (
void
)
_swizzled_terminate
:
(
id
)
sender
{
[
self
_swizzled_terminate:
sender];
}
@end
void
MacInitialize
() {
[
NSApplication
sharedApplication
];
}
Back
|
FazBrowse Home
|
New Git URL