From 7fafee8a6c6472632b804404b5616204c7c6550d Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sun, 8 Sep 2024 20:14:45 +1000 Subject: [PATCH] [mac] events updates --- mkdocs-website/docs/en/changelog.md | 3 +++ v3/pkg/application/application_darwin.go | 2 +- v3/pkg/application/events_common_darwin.go | 2 +- v3/pkg/application/webview_window_darwin.go | 12 ++++++------ 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mkdocs-website/docs/en/changelog.md b/mkdocs-website/docs/en/changelog.md index 0518eafca..2a775e106 100644 --- a/mkdocs-website/docs/en/changelog.md +++ b/mkdocs-website/docs/en/changelog.md @@ -21,6 +21,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [windows] Window class name option by [windom](https://github.com/windom/) in [#3682](https://github.com/wailsapp/wails/pull/3682) - Services have been expanded to provide plugin functionality. By [atterpac](https://github.com/atterpac) and [leaanthony](https://github.com/leaanthony) in [#3570](https://github.com/wailsapp/wails/pull/3570) +### Changed +- Events API change: `On`/`Emit` -> user events, `OnApplicationEvent` -> Application Events `OnWindowEvent` -> Window Events, by [leaanthony](https://github.com/leaanthony) + ### Fixed - [linux] Fixed linux compile error introduced by IgnoreMouseEvents addition by [atterpac](https://github.com/atterpac) in [#3721](https://github.com/wailsapp/wails/pull/3721) - [windows] Fixed syso icon file generation bug by [atterpac](https://github.com/atterpac) in [#3675](https://github.com/wailsapp/wails/pull/3675) diff --git a/v3/pkg/application/application_darwin.go b/v3/pkg/application/application_darwin.go index a7007df7f..69de38507 100644 --- a/v3/pkg/application/application_darwin.go +++ b/v3/pkg/application/application_darwin.go @@ -221,7 +221,7 @@ func (m *macosApp) setApplicationMenu(menu *Menu) { func (m *macosApp) run() error { // Add a hook to the ApplicationDidFinishLaunching event - m.parent.On(events.Mac.ApplicationDidFinishLaunching, func(*ApplicationEvent) { + m.parent.OnApplicationEvent(events.Mac.ApplicationDidFinishLaunching, func(*ApplicationEvent) { C.setApplicationShouldTerminateAfterLastWindowClosed(C.bool(m.parent.options.Mac.ApplicationShouldTerminateAfterLastWindowClosed)) C.setActivationPolicy(C.int(m.parent.options.Mac.ActivationPolicy)) C.activateIgnoringOtherApps() diff --git a/v3/pkg/application/events_common_darwin.go b/v3/pkg/application/events_common_darwin.go index 30c573375..e8c988dae 100644 --- a/v3/pkg/application/events_common_darwin.go +++ b/v3/pkg/application/events_common_darwin.go @@ -13,7 +13,7 @@ func (m *macosApp) setupCommonEvents() { for sourceEvent, targetEvent := range commonApplicationEventMap { sourceEvent := sourceEvent targetEvent := targetEvent - m.parent.On(sourceEvent, func(event *ApplicationEvent) { + m.parent.OnApplicationEvent(sourceEvent, func(event *ApplicationEvent) { event.Id = uint(targetEvent) applicationEvents <- event }) diff --git a/v3/pkg/application/webview_window_darwin.go b/v3/pkg/application/webview_window_darwin.go index 4f7e775f1..3618645fd 100644 --- a/v3/pkg/application/webview_window_darwin.go +++ b/v3/pkg/application/webview_window_darwin.go @@ -1240,7 +1240,7 @@ func (w *macosWebviewWindow) run() { w.setURL(startURL) // We need to wait for the HTML to load before we can execute the javascript - w.parent.On(events.Mac.WebViewDidFinishNavigation, func(_ *WindowEvent) { + w.parent.OnWindowEvent(events.Mac.WebViewDidFinishNavigation, func(_ *WindowEvent) { InvokeAsync(func() { if options.JS != "" { w.execJS(options.JS) @@ -1254,7 +1254,7 @@ func (w *macosWebviewWindow) run() { } else { // We have to wait until the window is shown before we can remove the shadow var cancel func() - cancel = w.parent.On(events.Mac.WindowDidBecomeKey, func(_ *WindowEvent) { + cancel = w.parent.OnWindowEvent(events.Mac.WindowDidBecomeKey, func(_ *WindowEvent) { w.setHasShadow(!options.Mac.DisableShadow) cancel() }) @@ -1263,18 +1263,18 @@ func (w *macosWebviewWindow) run() { }) // Translate ShouldClose to common WindowClosing event - w.parent.On(events.Mac.WindowShouldClose, func(_ *WindowEvent) { + w.parent.OnWindowEvent(events.Mac.WindowShouldClose, func(_ *WindowEvent) { w.parent.emit(events.Common.WindowClosing) }) // Translate WindowDidResignKey to common WindowLostFocus event - w.parent.On(events.Mac.WindowDidResignKey, func(_ *WindowEvent) { + w.parent.OnWindowEvent(events.Mac.WindowDidResignKey, func(_ *WindowEvent) { w.parent.emit(events.Common.WindowLostFocus) }) - w.parent.On(events.Mac.WindowDidResignMain, func(_ *WindowEvent) { + w.parent.OnWindowEvent(events.Mac.WindowDidResignMain, func(_ *WindowEvent) { w.parent.emit(events.Common.WindowLostFocus) }) - w.parent.On(events.Mac.WindowDidResize, func(_ *WindowEvent) { + w.parent.OnWindowEvent(events.Mac.WindowDidResize, func(_ *WindowEvent) { w.parent.emit(events.Common.WindowDidResize) })