diff --git a/v3/examples/window/main.go b/v3/examples/window/main.go index 94aa474a7..7a6e174c5 100644 --- a/v3/examples/window/main.go +++ b/v3/examples/window/main.go @@ -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) { diff --git a/v3/pkg/application/application.go b/v3/pkg/application/application.go index 2d7126480..aa2e0296c 100644 --- a/v3/pkg/application/application.go +++ b/v3/pkg/application/application.go @@ -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() diff --git a/v3/pkg/application/options_webview_window.go b/v3/pkg/application/options_webview_window.go index 5e5e9647a..99e40d054 100644 --- a/v3/pkg/application/options_webview_window.go +++ b/v3/pkg/application/options_webview_window.go @@ -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 } diff --git a/v3/pkg/application/webview_window.h b/v3/pkg/application/webview_window.h index 1a462d5a6..280ec934c 100644 --- a/v3/pkg/application/webview_window.h +++ b/v3/pkg/application/webview_window.h @@ -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 @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 diff --git a/v3/pkg/application/webview_window.m b/v3/pkg/application/webview_window.m index 39c411c38..70636fc47 100644 --- a/v3/pkg/application/webview_window.m +++ b/v3/pkg/application/webview_window.m @@ -33,15 +33,33 @@ extern bool hasListeners(unsigned int); - (BOOL) resignFirstResponder { return YES; } +- (void) setDelegate:(id) 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); diff --git a/v3/pkg/application/webview_window_darwin.go b/v3/pkg/application/webview_window_darwin.go index 6a51f6849..3f1f1a7bd 100644 --- a/v3/pkg/application/webview_window_darwin.go +++ b/v3/pkg/application/webview_window_darwin.go @@ -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) } diff --git a/v3/pkg/application/webview_window_devtools.go b/v3/pkg/application/webview_window_devtools.go index 98d022ccf..7dce43c52 100644 --- a/v3/pkg/application/webview_window_devtools.go +++ b/v3/pkg/application/webview_window_devtools.go @@ -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]; }); } diff --git a/v3/pkg/events/events.go b/v3/pkg/events/events.go index b73b9d767..f26f53b2e 100644 --- a/v3/pkg/events/events.go +++ b/v3/pkg/events/events.go @@ -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, } } diff --git a/v3/pkg/events/events.h b/v3/pkg/events/events.h index 2013d82f2..67cbdbef5 100644 --- a/v3/pkg/events/events.h +++ b/v3/pkg/events/events.h @@ -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 \ No newline at end of file diff --git a/v3/pkg/events/events.txt b/v3/pkg/events/events.txt index 333931721..dbbe98db4 100644 --- a/v3/pkg/events/events.txt +++ b/v3/pkg/events/events.txt @@ -39,7 +39,6 @@ mac:WindowDidChangeSpaceOrderingMode mac:WindowDidChangeTitle mac:WindowDidChangeToolbar mac:WindowDidChangeVisibility -mac:WindowDidClose mac:WindowDidDeminiaturize mac:WindowDidEndSheet mac:WindowDidEnterFullScreen