mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 06:32:10 +08:00
[v3, darwin] Fix leaking WebKit processes on Window close (#2574)
* [v3, darwin] Fix leaking WebKit processes on Window close * [v3] Remove window from window map if closed [v3] Implement `HideOnClose` and ensure it isn't removed when closed --------- Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
This commit is contained in:
parent
f335cbd608
commit
c8d203d4d6
@ -53,6 +53,16 @@ func main() {
|
||||
Show()
|
||||
windowCounter++
|
||||
})
|
||||
myMenu.Add("New WebviewWindow (Hide on Close").
|
||||
SetAccelerator("CmdOrCtrl+H").
|
||||
OnClick(func(ctx *application.Context) {
|
||||
app.NewWebviewWindowWithOptions(&application.WebviewWindowOptions{HideOnClose: true}).
|
||||
SetTitle("WebviewWindow "+strconv.Itoa(windowCounter)).
|
||||
SetPosition(rand.Intn(1000), rand.Intn(800)).
|
||||
SetURL("https://wails.io").
|
||||
Show()
|
||||
windowCounter++
|
||||
})
|
||||
myMenu.Add("New Frameless WebviewWindow").
|
||||
SetAccelerator("CmdOrCtrl+F").
|
||||
OnClick(func(ctx *application.Context) {
|
||||
|
@ -207,6 +207,12 @@ func (a *App) getWindowForID(id uint) *WebviewWindow {
|
||||
return a.windows[id]
|
||||
}
|
||||
|
||||
func (a *App) deleteWindowByID(id uint) {
|
||||
a.windowsLock.Lock()
|
||||
defer a.windowsLock.Unlock()
|
||||
delete(a.windows, id)
|
||||
}
|
||||
|
||||
func (a *App) On(eventType events.ApplicationEventType, callback func()) {
|
||||
eventID := uint(eventType)
|
||||
a.applicationEventListenersLock.Lock()
|
||||
|
@ -29,6 +29,7 @@ type WebviewWindowOptions struct {
|
||||
CSS string
|
||||
X int
|
||||
Y int
|
||||
HideOnClose bool
|
||||
FullscreenButtonEnabled bool
|
||||
Hidden bool
|
||||
EnableFraudulentWebsiteWarnings bool
|
||||
@ -43,7 +44,6 @@ var WebviewWindowDefaults = &WebviewWindowOptions{
|
||||
URL: "",
|
||||
}
|
||||
|
||||
|
||||
type RGBA struct {
|
||||
Red, Green, Blue, Alpha uint8
|
||||
}
|
||||
|
@ -14,14 +14,14 @@
|
||||
- (BOOL) resignFirstResponder;
|
||||
- (WebviewWindow*) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation;
|
||||
|
||||
@property (assign) WKWebView* webView; // We already retain WKWebView since it's part of the Window.
|
||||
|
||||
@end
|
||||
|
||||
@interface WebviewWindowDelegate : NSObject <NSWindowDelegate, WKScriptMessageHandler, WKNavigationDelegate, WKURLSchemeHandler, NSDraggingDestination>
|
||||
|
||||
@property bool hideOnClose;
|
||||
@property (retain) WKWebView* webView;
|
||||
@property unsigned int windowId;
|
||||
@property (retain) NSWindow* window;
|
||||
@property (retain) NSEvent* leftMouseEvent;
|
||||
@property unsigned int invisibleTitleBarHeight;
|
||||
@property NSWindowStyleMask previousStyleMask; // Used to restore the window style mask when using frameless
|
||||
|
@ -33,15 +33,33 @@ extern bool hasListeners(unsigned int);
|
||||
- (BOOL) resignFirstResponder {
|
||||
return YES;
|
||||
}
|
||||
- (void) setDelegate:(id<NSWindowDelegate>) delegate {
|
||||
[delegate retain];
|
||||
[super setDelegate: delegate];
|
||||
}
|
||||
- (void) dealloc {
|
||||
// Remove the script handler, otherwise WebviewWindowDelegate won't get deallocated
|
||||
// See: https://stackoverflow.com/questions/26383031/wkwebview-causes-my-view-controller-to-leak
|
||||
[self.webView.configuration.userContentController removeScriptMessageHandlerForName:@"external"];
|
||||
if (self.delegate) {
|
||||
[self.delegate release];
|
||||
}
|
||||
[super dealloc];
|
||||
}
|
||||
@end
|
||||
@implementation WebviewWindowDelegate
|
||||
- (BOOL)windowShouldClose:(NSWindow *)sender {
|
||||
if( self.hideOnClose ) {
|
||||
[NSApp hide:nil];
|
||||
[sender orderOut:nil];
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
- (void) dealloc {
|
||||
// Makes sure to remove the retained properties so the reference counter of the retains are decreased
|
||||
self.leftMouseEvent = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
// Handle script messages from the external bridge
|
||||
- (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message {
|
||||
NSString *m = message.body;
|
||||
@ -215,12 +233,6 @@ extern bool hasListeners(unsigned int);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)windowDidClose:(NSNotification *)notification {
|
||||
if( hasListeners(EventWindowDidClose) ) {
|
||||
processWindowEvent(self.windowId, EventWindowDidClose);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)windowDidDeminiaturize:(NSNotification *)notification {
|
||||
if( hasListeners(EventWindowDidDeminiaturize) ) {
|
||||
processWindowEvent(self.windowId, EventWindowDidDeminiaturize);
|
||||
|
@ -18,8 +18,7 @@ package application
|
||||
extern void registerListener(unsigned int event);
|
||||
|
||||
// Create a new Window
|
||||
void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWarningEnabled, bool frameless, bool enableDragAndDrop) {
|
||||
|
||||
void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWarningEnabled, bool frameless, bool enableDragAndDrop, bool hideOnClose) {
|
||||
NSWindowStyleMask styleMask = NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable;
|
||||
if (frameless) {
|
||||
styleMask = NSWindowStyleMaskBorderless | NSWindowStyleMaskResizable;
|
||||
@ -31,13 +30,16 @@ void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWa
|
||||
|
||||
// Create delegate
|
||||
WebviewWindowDelegate* delegate = [[WebviewWindowDelegate alloc] init];
|
||||
[delegate autorelease];
|
||||
|
||||
// Set delegate
|
||||
[window setDelegate:delegate];
|
||||
delegate.windowId = id;
|
||||
delegate.window = window;
|
||||
|
||||
// Add NSView to window
|
||||
NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, width-1, height-1)];
|
||||
[view autorelease];
|
||||
|
||||
[view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
if( frameless ) {
|
||||
[view setWantsLayer:YES];
|
||||
@ -48,6 +50,8 @@ void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWa
|
||||
// Embed wkwebview in window
|
||||
NSRect frame = NSMakeRect(0, 0, width, height);
|
||||
WKWebViewConfiguration* config = [[WKWebViewConfiguration alloc] init];
|
||||
[config autorelease];
|
||||
|
||||
config.suppressesIncrementalRendering = true;
|
||||
config.applicationNameForUserAgent = @"wails.io";
|
||||
[config setURLSchemeHandler:delegate forURLScheme:@"wails"];
|
||||
@ -57,10 +61,14 @@ void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWa
|
||||
|
||||
// Setup user content controller
|
||||
WKUserContentController* userContentController = [WKUserContentController new];
|
||||
[userContentController autorelease];
|
||||
|
||||
[userContentController addScriptMessageHandler:delegate name:@"external"];
|
||||
config.userContentController = userContentController;
|
||||
|
||||
WKWebView* webView = [[WKWebView alloc] initWithFrame:frame configuration:config];
|
||||
[webView autorelease];
|
||||
|
||||
[view addSubview:webView];
|
||||
|
||||
// support webview events
|
||||
@ -69,16 +77,18 @@ void* windowNew(unsigned int id, int width, int height, bool fraudulentWebsiteWa
|
||||
// Ensure webview resizes with the window
|
||||
[webView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
|
||||
delegate.webView = webView;
|
||||
delegate.hideOnClose = false;
|
||||
delegate.hideOnClose = hideOnClose;
|
||||
|
||||
if( enableDragAndDrop ) {
|
||||
WebviewDrag* dragView = [[WebviewDrag alloc] initWithFrame:NSMakeRect(0, 0, width-1, height-1)];
|
||||
[dragView autorelease];
|
||||
|
||||
[view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
[view addSubview:dragView];
|
||||
dragView.windowId = id;
|
||||
}
|
||||
|
||||
window.webView = webView;
|
||||
return window;
|
||||
}
|
||||
|
||||
@ -201,7 +211,8 @@ void navigationLoadURL(void* nsWindow, char* url) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
NSURL* nsURL = [NSURL URLWithString:[NSString stringWithUTF8String:url]];
|
||||
NSURLRequest* request = [NSURLRequest requestWithURL:nsURL];
|
||||
[[(WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate] webView] loadRequest:request];
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
[window.webView loadRequest:request];
|
||||
free(url);
|
||||
});
|
||||
}
|
||||
@ -251,10 +262,10 @@ void windowSetMaxSize(void* nsWindow, int width, int height) {
|
||||
void windowEnableDevTools(void* nsWindow) {
|
||||
// Enable devtools on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Enable devtools in webview
|
||||
[delegate.webView.configuration.preferences setValue:@YES forKey:@"developerExtrasEnabled"];
|
||||
[window.webView.configuration.preferences setValue:@YES forKey:@"developerExtrasEnabled"];
|
||||
});
|
||||
}
|
||||
|
||||
@ -262,10 +273,10 @@ void windowEnableDevTools(void* nsWindow) {
|
||||
void windowZoomReset(void* nsWindow) {
|
||||
// Reset zoom on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Reset zoom
|
||||
[delegate.webView setMagnification:1.0];
|
||||
[window.webView setMagnification:1.0];
|
||||
});
|
||||
}
|
||||
|
||||
@ -273,28 +284,29 @@ void windowZoomReset(void* nsWindow) {
|
||||
void windowZoomSet(void* nsWindow, double zoom) {
|
||||
// Reset zoom on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Reset zoom
|
||||
[delegate.webView setMagnification:zoom];
|
||||
[window.webView setMagnification:zoom];
|
||||
});
|
||||
}
|
||||
|
||||
// windowZoomGet
|
||||
float windowZoomGet(void* nsWindow) {
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Get zoom
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
return [delegate.webView magnification];
|
||||
return [window.webView magnification];
|
||||
}
|
||||
|
||||
// windowZoomIn
|
||||
void windowZoomIn(void* nsWindow) {
|
||||
// Zoom in on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Zoom in
|
||||
[delegate.webView setMagnification:delegate.webView.magnification + 0.05];
|
||||
[window.webView setMagnification:window.webView.magnification + 0.05];
|
||||
});
|
||||
}
|
||||
|
||||
@ -302,13 +314,13 @@ void windowZoomIn(void* nsWindow) {
|
||||
void windowZoomOut(void* nsWindow) {
|
||||
// Zoom out on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Zoom out
|
||||
if( delegate.webView.magnification > 1.05 ) {
|
||||
[delegate.webView setMagnification:delegate.webView.magnification - 0.05];
|
||||
if( window.webView.magnification > 1.05 ) {
|
||||
[window.webView setMagnification:window.webView.magnification - 0.05];
|
||||
} else {
|
||||
[delegate.webView setMagnification:1.0];
|
||||
[window.webView setMagnification:1.0];
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -325,8 +337,9 @@ void windowSetPosition(void* nsWindow, int x, int y) {
|
||||
void windowExecJS(void* nsWindow, const char* js) {
|
||||
// Execute JS on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
[delegate.webView evaluateJavaScript:[NSString stringWithUTF8String:js] completionHandler:nil];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
[window.webView evaluateJavaScript:[NSString stringWithUTF8String:js] completionHandler:nil];
|
||||
free((void*)js);
|
||||
});
|
||||
}
|
||||
@ -339,9 +352,6 @@ void windowSetTranslucent(void* nsWindow) {
|
||||
// Get window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
|
||||
id contentView = [window contentView];
|
||||
NSVisualEffectView *effectView = [NSVisualEffectView alloc];
|
||||
NSRect bounds = [contentView bounds];
|
||||
@ -357,10 +367,10 @@ void windowSetTranslucent(void* nsWindow) {
|
||||
void webviewSetTransparent(void* nsWindow) {
|
||||
// Set webview transparent on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Set webview background transparent
|
||||
[delegate.webView setValue:@NO forKey:@"drawsBackground"];
|
||||
[window.webView setValue:@NO forKey:@"drawsBackground"];
|
||||
});
|
||||
}
|
||||
|
||||
@ -368,10 +378,10 @@ void webviewSetTransparent(void* nsWindow) {
|
||||
void webviewSetBackgroundColour(void* nsWindow, int r, int g, int b, int alpha) {
|
||||
// Set webview background color on main thread
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// Get window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(WebviewWindow*)nsWindow delegate];
|
||||
// get main window
|
||||
WebviewWindow* window = (WebviewWindow*)nsWindow;
|
||||
// Set webview background color
|
||||
[delegate.webView setValue:[NSColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:alpha/255.0] forKey:@"backgroundColor"];
|
||||
[window.webView setValue:[NSColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:alpha/255.0] forKey:@"backgroundColor"];
|
||||
});
|
||||
}
|
||||
|
||||
@ -665,7 +675,7 @@ static void windowRenderHTML(void *window, const char *html) {
|
||||
// get window delegate
|
||||
WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate];
|
||||
// render html
|
||||
[(WKWebView*)windowDelegate.webView loadHTMLString:[NSString stringWithUTF8String:html] baseURL:nil];
|
||||
[nsWindow.webView loadHTMLString:[NSString stringWithUTF8String:html] baseURL:nil];
|
||||
});
|
||||
}
|
||||
|
||||
@ -673,10 +683,8 @@ static void windowInjectCSS(void *window, const char *css) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
// get main window
|
||||
WebviewWindow* nsWindow = (WebviewWindow*)window;
|
||||
// get window delegate
|
||||
WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate];
|
||||
// inject css
|
||||
[(WKWebView*)windowDelegate.webView evaluateJavaScript:[NSString stringWithFormat:@"(function() { var style = document.createElement('style'); style.appendChild(document.createTextNode('%@')); document.head.appendChild(style); })();", [NSString stringWithUTF8String:css]] completionHandler:nil];
|
||||
[nsWindow.webView evaluateJavaScript:[NSString stringWithFormat:@"(function() { var style = document.createElement('style'); style.appendChild(document.createTextNode('%@')); document.head.appendChild(style); })();", [NSString stringWithUTF8String:css]] completionHandler:nil];
|
||||
free((void*)css);
|
||||
});
|
||||
}
|
||||
@ -763,9 +771,7 @@ static void windowShowMenu(void *window, void *menu, int x, int y) {
|
||||
// get menu
|
||||
NSMenu* nsMenu = (NSMenu*)menu;
|
||||
// get webview
|
||||
WebviewWindowDelegate* windowDelegate = (WebviewWindowDelegate*)[nsWindow delegate];
|
||||
// get webview
|
||||
WKWebView* webView = (WKWebView*)windowDelegate.webView;
|
||||
WKWebView* webView = nsWindow.webView;
|
||||
NSPoint point = NSMakePoint(x, y);
|
||||
[nsMenu popUpMenuPositioningItem:nil atLocation:point inView:webView];
|
||||
});
|
||||
@ -895,6 +901,9 @@ func (w *macosWebviewWindow) windowZoom() {
|
||||
|
||||
func (w *macosWebviewWindow) close() {
|
||||
C.windowClose(w.nsWindow)
|
||||
if !w.parent.options.HideOnClose {
|
||||
globalApplication.deleteWindowByID(w.parent.id)
|
||||
}
|
||||
}
|
||||
|
||||
func (w *macosWebviewWindow) zoomIn() {
|
||||
@ -1069,6 +1078,7 @@ func (w *macosWebviewWindow) run() {
|
||||
C.bool(w.parent.options.EnableFraudulentWebsiteWarnings),
|
||||
C.bool(w.parent.options.Frameless),
|
||||
C.bool(w.parent.options.EnableDragAndDrop),
|
||||
C.bool(w.parent.options.HideOnClose),
|
||||
)
|
||||
w.setTitle(w.parent.options.Title)
|
||||
w.setAlwaysOnTop(w.parent.options.AlwaysOnTop)
|
||||
@ -1135,6 +1145,11 @@ func (w *macosWebviewWindow) run() {
|
||||
C.windowInjectCSS(w.nsWindow, C.CString(w.parent.options.CSS))
|
||||
}
|
||||
})
|
||||
|
||||
w.parent.On(events.Mac.WindowWillClose, func(_ *WindowEventContext) {
|
||||
globalApplication.deleteWindowByID(w.parent.id)
|
||||
})
|
||||
|
||||
if w.parent.options.HTML != "" {
|
||||
w.setHTML(w.parent.options.HTML)
|
||||
}
|
||||
|
@ -20,10 +20,10 @@ package application
|
||||
@end
|
||||
|
||||
void showDevTools(void *window) {
|
||||
// Get the window delegate
|
||||
WebviewWindowDelegate* delegate = (WebviewWindowDelegate*)[(NSWindow*)window delegate];
|
||||
// get main window
|
||||
WebviewWindow* nsWindow = (WebviewWindow*)window;
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[delegate.webView._inspector show];
|
||||
[nsWindow.webView._inspector show];
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,6 @@ type macEvents struct {
|
||||
WindowDidChangeTitle WindowEventType
|
||||
WindowDidChangeToolbar WindowEventType
|
||||
WindowDidChangeVisibility WindowEventType
|
||||
WindowDidClose WindowEventType
|
||||
WindowDidDeminiaturize WindowEventType
|
||||
WindowDidEndSheet WindowEventType
|
||||
WindowDidEnterFullScreen WindowEventType
|
||||
@ -178,87 +177,86 @@ func newMacEvents() macEvents {
|
||||
WindowDidChangeTitle: 1062,
|
||||
WindowDidChangeToolbar: 1063,
|
||||
WindowDidChangeVisibility: 1064,
|
||||
WindowDidClose: 1065,
|
||||
WindowDidDeminiaturize: 1066,
|
||||
WindowDidEndSheet: 1067,
|
||||
WindowDidEnterFullScreen: 1068,
|
||||
WindowDidEnterVersionBrowser: 1069,
|
||||
WindowDidExitFullScreen: 1070,
|
||||
WindowDidExitVersionBrowser: 1071,
|
||||
WindowDidExpose: 1072,
|
||||
WindowDidFocus: 1073,
|
||||
WindowDidMiniaturize: 1074,
|
||||
WindowDidMove: 1075,
|
||||
WindowDidOrderOffScreen: 1076,
|
||||
WindowDidOrderOnScreen: 1077,
|
||||
WindowDidResignKey: 1078,
|
||||
WindowDidResignMain: 1079,
|
||||
WindowDidResize: 1080,
|
||||
WindowDidUnfocus: 1081,
|
||||
WindowDidUpdate: 1082,
|
||||
WindowDidUpdateAlpha: 1083,
|
||||
WindowDidUpdateCollectionBehavior: 1084,
|
||||
WindowDidUpdateCollectionProperties: 1085,
|
||||
WindowDidUpdateShadow: 1086,
|
||||
WindowDidUpdateTitle: 1087,
|
||||
WindowDidUpdateToolbar: 1088,
|
||||
WindowDidUpdateVisibility: 1089,
|
||||
WindowWillBecomeKey: 1090,
|
||||
WindowWillBecomeMain: 1091,
|
||||
WindowWillBeginSheet: 1092,
|
||||
WindowWillChangeOrderingMode: 1093,
|
||||
WindowWillClose: 1094,
|
||||
WindowWillDeminiaturize: 1095,
|
||||
WindowWillEnterFullScreen: 1096,
|
||||
WindowWillEnterVersionBrowser: 1097,
|
||||
WindowWillExitFullScreen: 1098,
|
||||
WindowWillExitVersionBrowser: 1099,
|
||||
WindowWillFocus: 1100,
|
||||
WindowWillMiniaturize: 1101,
|
||||
WindowWillMove: 1102,
|
||||
WindowWillOrderOffScreen: 1103,
|
||||
WindowWillOrderOnScreen: 1104,
|
||||
WindowWillResignMain: 1105,
|
||||
WindowWillResize: 1106,
|
||||
WindowWillUnfocus: 1107,
|
||||
WindowWillUpdate: 1108,
|
||||
WindowWillUpdateAlpha: 1109,
|
||||
WindowWillUpdateCollectionBehavior: 1110,
|
||||
WindowWillUpdateCollectionProperties: 1111,
|
||||
WindowWillUpdateShadow: 1112,
|
||||
WindowWillUpdateTitle: 1113,
|
||||
WindowWillUpdateToolbar: 1114,
|
||||
WindowWillUpdateVisibility: 1115,
|
||||
WindowWillUseStandardFrame: 1116,
|
||||
MenuWillOpen: 1117,
|
||||
MenuDidOpen: 1118,
|
||||
MenuDidClose: 1119,
|
||||
MenuWillSendAction: 1120,
|
||||
MenuDidSendAction: 1121,
|
||||
MenuWillHighlightItem: 1122,
|
||||
MenuDidHighlightItem: 1123,
|
||||
MenuWillDisplayItem: 1124,
|
||||
MenuDidDisplayItem: 1125,
|
||||
MenuWillAddItem: 1126,
|
||||
MenuDidAddItem: 1127,
|
||||
MenuWillRemoveItem: 1128,
|
||||
MenuDidRemoveItem: 1129,
|
||||
MenuWillBeginTracking: 1130,
|
||||
MenuDidBeginTracking: 1131,
|
||||
MenuWillEndTracking: 1132,
|
||||
MenuDidEndTracking: 1133,
|
||||
MenuWillUpdate: 1134,
|
||||
MenuDidUpdate: 1135,
|
||||
MenuWillPopUp: 1136,
|
||||
MenuDidPopUp: 1137,
|
||||
MenuWillSendActionToItem: 1138,
|
||||
MenuDidSendActionToItem: 1139,
|
||||
WebViewDidStartProvisionalNavigation: 1140,
|
||||
WebViewDidReceiveServerRedirectForProvisionalNavigation: 1141,
|
||||
WebViewDidFinishNavigation: 1142,
|
||||
WebViewDidCommitNavigation: 1143,
|
||||
WindowFileDraggingEntered: 1144,
|
||||
WindowFileDraggingPerformed: 1145,
|
||||
WindowFileDraggingExited: 1146,
|
||||
WindowDidDeminiaturize: 1065,
|
||||
WindowDidEndSheet: 1066,
|
||||
WindowDidEnterFullScreen: 1067,
|
||||
WindowDidEnterVersionBrowser: 1068,
|
||||
WindowDidExitFullScreen: 1069,
|
||||
WindowDidExitVersionBrowser: 1070,
|
||||
WindowDidExpose: 1071,
|
||||
WindowDidFocus: 1072,
|
||||
WindowDidMiniaturize: 1073,
|
||||
WindowDidMove: 1074,
|
||||
WindowDidOrderOffScreen: 1075,
|
||||
WindowDidOrderOnScreen: 1076,
|
||||
WindowDidResignKey: 1077,
|
||||
WindowDidResignMain: 1078,
|
||||
WindowDidResize: 1079,
|
||||
WindowDidUnfocus: 1080,
|
||||
WindowDidUpdate: 1081,
|
||||
WindowDidUpdateAlpha: 1082,
|
||||
WindowDidUpdateCollectionBehavior: 1083,
|
||||
WindowDidUpdateCollectionProperties: 1084,
|
||||
WindowDidUpdateShadow: 1085,
|
||||
WindowDidUpdateTitle: 1086,
|
||||
WindowDidUpdateToolbar: 1087,
|
||||
WindowDidUpdateVisibility: 1088,
|
||||
WindowWillBecomeKey: 1089,
|
||||
WindowWillBecomeMain: 1090,
|
||||
WindowWillBeginSheet: 1091,
|
||||
WindowWillChangeOrderingMode: 1092,
|
||||
WindowWillClose: 1093,
|
||||
WindowWillDeminiaturize: 1094,
|
||||
WindowWillEnterFullScreen: 1095,
|
||||
WindowWillEnterVersionBrowser: 1096,
|
||||
WindowWillExitFullScreen: 1097,
|
||||
WindowWillExitVersionBrowser: 1098,
|
||||
WindowWillFocus: 1099,
|
||||
WindowWillMiniaturize: 1100,
|
||||
WindowWillMove: 1101,
|
||||
WindowWillOrderOffScreen: 1102,
|
||||
WindowWillOrderOnScreen: 1103,
|
||||
WindowWillResignMain: 1104,
|
||||
WindowWillResize: 1105,
|
||||
WindowWillUnfocus: 1106,
|
||||
WindowWillUpdate: 1107,
|
||||
WindowWillUpdateAlpha: 1108,
|
||||
WindowWillUpdateCollectionBehavior: 1109,
|
||||
WindowWillUpdateCollectionProperties: 1110,
|
||||
WindowWillUpdateShadow: 1111,
|
||||
WindowWillUpdateTitle: 1112,
|
||||
WindowWillUpdateToolbar: 1113,
|
||||
WindowWillUpdateVisibility: 1114,
|
||||
WindowWillUseStandardFrame: 1115,
|
||||
MenuWillOpen: 1116,
|
||||
MenuDidOpen: 1117,
|
||||
MenuDidClose: 1118,
|
||||
MenuWillSendAction: 1119,
|
||||
MenuDidSendAction: 1120,
|
||||
MenuWillHighlightItem: 1121,
|
||||
MenuDidHighlightItem: 1122,
|
||||
MenuWillDisplayItem: 1123,
|
||||
MenuDidDisplayItem: 1124,
|
||||
MenuWillAddItem: 1125,
|
||||
MenuDidAddItem: 1126,
|
||||
MenuWillRemoveItem: 1127,
|
||||
MenuDidRemoveItem: 1128,
|
||||
MenuWillBeginTracking: 1129,
|
||||
MenuDidBeginTracking: 1130,
|
||||
MenuWillEndTracking: 1131,
|
||||
MenuDidEndTracking: 1132,
|
||||
MenuWillUpdate: 1133,
|
||||
MenuDidUpdate: 1134,
|
||||
MenuWillPopUp: 1135,
|
||||
MenuDidPopUp: 1136,
|
||||
MenuWillSendActionToItem: 1137,
|
||||
MenuDidSendActionToItem: 1138,
|
||||
WebViewDidStartProvisionalNavigation: 1139,
|
||||
WebViewDidReceiveServerRedirectForProvisionalNavigation: 1140,
|
||||
WebViewDidFinishNavigation: 1141,
|
||||
WebViewDidCommitNavigation: 1142,
|
||||
WindowFileDraggingEntered: 1143,
|
||||
WindowFileDraggingPerformed: 1144,
|
||||
WindowFileDraggingExited: 1145,
|
||||
}
|
||||
}
|
||||
|
@ -47,90 +47,89 @@ extern void processWindowEvent(unsigned int, unsigned int);
|
||||
#define EventWindowDidChangeTitle 1062
|
||||
#define EventWindowDidChangeToolbar 1063
|
||||
#define EventWindowDidChangeVisibility 1064
|
||||
#define EventWindowDidClose 1065
|
||||
#define EventWindowDidDeminiaturize 1066
|
||||
#define EventWindowDidEndSheet 1067
|
||||
#define EventWindowDidEnterFullScreen 1068
|
||||
#define EventWindowDidEnterVersionBrowser 1069
|
||||
#define EventWindowDidExitFullScreen 1070
|
||||
#define EventWindowDidExitVersionBrowser 1071
|
||||
#define EventWindowDidExpose 1072
|
||||
#define EventWindowDidFocus 1073
|
||||
#define EventWindowDidMiniaturize 1074
|
||||
#define EventWindowDidMove 1075
|
||||
#define EventWindowDidOrderOffScreen 1076
|
||||
#define EventWindowDidOrderOnScreen 1077
|
||||
#define EventWindowDidResignKey 1078
|
||||
#define EventWindowDidResignMain 1079
|
||||
#define EventWindowDidResize 1080
|
||||
#define EventWindowDidUnfocus 1081
|
||||
#define EventWindowDidUpdate 1082
|
||||
#define EventWindowDidUpdateAlpha 1083
|
||||
#define EventWindowDidUpdateCollectionBehavior 1084
|
||||
#define EventWindowDidUpdateCollectionProperties 1085
|
||||
#define EventWindowDidUpdateShadow 1086
|
||||
#define EventWindowDidUpdateTitle 1087
|
||||
#define EventWindowDidUpdateToolbar 1088
|
||||
#define EventWindowDidUpdateVisibility 1089
|
||||
#define EventWindowWillBecomeKey 1090
|
||||
#define EventWindowWillBecomeMain 1091
|
||||
#define EventWindowWillBeginSheet 1092
|
||||
#define EventWindowWillChangeOrderingMode 1093
|
||||
#define EventWindowWillClose 1094
|
||||
#define EventWindowWillDeminiaturize 1095
|
||||
#define EventWindowWillEnterFullScreen 1096
|
||||
#define EventWindowWillEnterVersionBrowser 1097
|
||||
#define EventWindowWillExitFullScreen 1098
|
||||
#define EventWindowWillExitVersionBrowser 1099
|
||||
#define EventWindowWillFocus 1100
|
||||
#define EventWindowWillMiniaturize 1101
|
||||
#define EventWindowWillMove 1102
|
||||
#define EventWindowWillOrderOffScreen 1103
|
||||
#define EventWindowWillOrderOnScreen 1104
|
||||
#define EventWindowWillResignMain 1105
|
||||
#define EventWindowWillResize 1106
|
||||
#define EventWindowWillUnfocus 1107
|
||||
#define EventWindowWillUpdate 1108
|
||||
#define EventWindowWillUpdateAlpha 1109
|
||||
#define EventWindowWillUpdateCollectionBehavior 1110
|
||||
#define EventWindowWillUpdateCollectionProperties 1111
|
||||
#define EventWindowWillUpdateShadow 1112
|
||||
#define EventWindowWillUpdateTitle 1113
|
||||
#define EventWindowWillUpdateToolbar 1114
|
||||
#define EventWindowWillUpdateVisibility 1115
|
||||
#define EventWindowWillUseStandardFrame 1116
|
||||
#define EventMenuWillOpen 1117
|
||||
#define EventMenuDidOpen 1118
|
||||
#define EventMenuDidClose 1119
|
||||
#define EventMenuWillSendAction 1120
|
||||
#define EventMenuDidSendAction 1121
|
||||
#define EventMenuWillHighlightItem 1122
|
||||
#define EventMenuDidHighlightItem 1123
|
||||
#define EventMenuWillDisplayItem 1124
|
||||
#define EventMenuDidDisplayItem 1125
|
||||
#define EventMenuWillAddItem 1126
|
||||
#define EventMenuDidAddItem 1127
|
||||
#define EventMenuWillRemoveItem 1128
|
||||
#define EventMenuDidRemoveItem 1129
|
||||
#define EventMenuWillBeginTracking 1130
|
||||
#define EventMenuDidBeginTracking 1131
|
||||
#define EventMenuWillEndTracking 1132
|
||||
#define EventMenuDidEndTracking 1133
|
||||
#define EventMenuWillUpdate 1134
|
||||
#define EventMenuDidUpdate 1135
|
||||
#define EventMenuWillPopUp 1136
|
||||
#define EventMenuDidPopUp 1137
|
||||
#define EventMenuWillSendActionToItem 1138
|
||||
#define EventMenuDidSendActionToItem 1139
|
||||
#define EventWebViewDidStartProvisionalNavigation 1140
|
||||
#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 1141
|
||||
#define EventWebViewDidFinishNavigation 1142
|
||||
#define EventWebViewDidCommitNavigation 1143
|
||||
#define EventWindowFileDraggingEntered 1144
|
||||
#define EventWindowFileDraggingPerformed 1145
|
||||
#define EventWindowFileDraggingExited 1146
|
||||
#define EventWindowDidDeminiaturize 1065
|
||||
#define EventWindowDidEndSheet 1066
|
||||
#define EventWindowDidEnterFullScreen 1067
|
||||
#define EventWindowDidEnterVersionBrowser 1068
|
||||
#define EventWindowDidExitFullScreen 1069
|
||||
#define EventWindowDidExitVersionBrowser 1070
|
||||
#define EventWindowDidExpose 1071
|
||||
#define EventWindowDidFocus 1072
|
||||
#define EventWindowDidMiniaturize 1073
|
||||
#define EventWindowDidMove 1074
|
||||
#define EventWindowDidOrderOffScreen 1075
|
||||
#define EventWindowDidOrderOnScreen 1076
|
||||
#define EventWindowDidResignKey 1077
|
||||
#define EventWindowDidResignMain 1078
|
||||
#define EventWindowDidResize 1079
|
||||
#define EventWindowDidUnfocus 1080
|
||||
#define EventWindowDidUpdate 1081
|
||||
#define EventWindowDidUpdateAlpha 1082
|
||||
#define EventWindowDidUpdateCollectionBehavior 1083
|
||||
#define EventWindowDidUpdateCollectionProperties 1084
|
||||
#define EventWindowDidUpdateShadow 1085
|
||||
#define EventWindowDidUpdateTitle 1086
|
||||
#define EventWindowDidUpdateToolbar 1087
|
||||
#define EventWindowDidUpdateVisibility 1088
|
||||
#define EventWindowWillBecomeKey 1089
|
||||
#define EventWindowWillBecomeMain 1090
|
||||
#define EventWindowWillBeginSheet 1091
|
||||
#define EventWindowWillChangeOrderingMode 1092
|
||||
#define EventWindowWillClose 1093
|
||||
#define EventWindowWillDeminiaturize 1094
|
||||
#define EventWindowWillEnterFullScreen 1095
|
||||
#define EventWindowWillEnterVersionBrowser 1096
|
||||
#define EventWindowWillExitFullScreen 1097
|
||||
#define EventWindowWillExitVersionBrowser 1098
|
||||
#define EventWindowWillFocus 1099
|
||||
#define EventWindowWillMiniaturize 1100
|
||||
#define EventWindowWillMove 1101
|
||||
#define EventWindowWillOrderOffScreen 1102
|
||||
#define EventWindowWillOrderOnScreen 1103
|
||||
#define EventWindowWillResignMain 1104
|
||||
#define EventWindowWillResize 1105
|
||||
#define EventWindowWillUnfocus 1106
|
||||
#define EventWindowWillUpdate 1107
|
||||
#define EventWindowWillUpdateAlpha 1108
|
||||
#define EventWindowWillUpdateCollectionBehavior 1109
|
||||
#define EventWindowWillUpdateCollectionProperties 1110
|
||||
#define EventWindowWillUpdateShadow 1111
|
||||
#define EventWindowWillUpdateTitle 1112
|
||||
#define EventWindowWillUpdateToolbar 1113
|
||||
#define EventWindowWillUpdateVisibility 1114
|
||||
#define EventWindowWillUseStandardFrame 1115
|
||||
#define EventMenuWillOpen 1116
|
||||
#define EventMenuDidOpen 1117
|
||||
#define EventMenuDidClose 1118
|
||||
#define EventMenuWillSendAction 1119
|
||||
#define EventMenuDidSendAction 1120
|
||||
#define EventMenuWillHighlightItem 1121
|
||||
#define EventMenuDidHighlightItem 1122
|
||||
#define EventMenuWillDisplayItem 1123
|
||||
#define EventMenuDidDisplayItem 1124
|
||||
#define EventMenuWillAddItem 1125
|
||||
#define EventMenuDidAddItem 1126
|
||||
#define EventMenuWillRemoveItem 1127
|
||||
#define EventMenuDidRemoveItem 1128
|
||||
#define EventMenuWillBeginTracking 1129
|
||||
#define EventMenuDidBeginTracking 1130
|
||||
#define EventMenuWillEndTracking 1131
|
||||
#define EventMenuDidEndTracking 1132
|
||||
#define EventMenuWillUpdate 1133
|
||||
#define EventMenuDidUpdate 1134
|
||||
#define EventMenuWillPopUp 1135
|
||||
#define EventMenuDidPopUp 1136
|
||||
#define EventMenuWillSendActionToItem 1137
|
||||
#define EventMenuDidSendActionToItem 1138
|
||||
#define EventWebViewDidStartProvisionalNavigation 1139
|
||||
#define EventWebViewDidReceiveServerRedirectForProvisionalNavigation 1140
|
||||
#define EventWebViewDidFinishNavigation 1141
|
||||
#define EventWebViewDidCommitNavigation 1142
|
||||
#define EventWindowFileDraggingEntered 1143
|
||||
#define EventWindowFileDraggingPerformed 1144
|
||||
#define EventWindowFileDraggingExited 1145
|
||||
|
||||
#define MAX_EVENTS 1147
|
||||
#define MAX_EVENTS 1146
|
||||
|
||||
|
||||
#endif
|
@ -39,7 +39,6 @@ mac:WindowDidChangeSpaceOrderingMode
|
||||
mac:WindowDidChangeTitle
|
||||
mac:WindowDidChangeToolbar
|
||||
mac:WindowDidChangeVisibility
|
||||
mac:WindowDidClose
|
||||
mac:WindowDidDeminiaturize
|
||||
mac:WindowDidEndSheet
|
||||
mac:WindowDidEnterFullScreen
|
||||
|
Loading…
Reference in New Issue
Block a user