5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-17 01:19:29 +08:00

Fix context menu issues.

Fix WindowID for requests on windows.
Add `Windows.ApplicationStarted` event
This commit is contained in:
Lea Anthony 2023-10-10 19:59:45 +11:00
parent 740b2b0979
commit 3d88bf8795
No known key found for this signature in database
GPG Key ID: 33DAF7BB90A58405
25 changed files with 162 additions and 114 deletions

View File

@ -18,13 +18,13 @@ The main goal is to get most of the examples working on all platforms.
- N - Not working - N - Not working
| Example | Mac | Windows | Linux | | Example | Mac | Windows | Linux |
|--------------|-----|---------|-------| |---------------|-----|---------|-------|
| binding | | W | | | binding | | W | |
| build | | W | | | build | | W | |
| clipboard | | W | | | clipboard | | W | |
| contextmenus | | N | | | context menus | | W | |
| dialog | | W | | | dialog | | W | |
| events | | N | | | events | | W | |
| frameless | | W | | | frameless | | W | |
| keybindings | | W | | | keybindings | | W | |
| menu | | W | | | menu | | W | |

View File

@ -35,7 +35,7 @@ require (
github.com/samber/lo v1.38.1 // indirect github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect github.com/stretchr/testify v1.8.4 // indirect
github.com/wailsapp/go-webview2 v1.0.7 // indirect github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect golang.org/x/crypto v0.9.0 // indirect

View File

@ -105,6 +105,7 @@ github.com/tmclane/purego v0.0.0-20230601213035-1f25e70d7b01 h1:oQwu3iNDywGp1Hry
github.com/tmclane/purego v0.0.0-20230601213035-1f25e70d7b01/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= github.com/tmclane/purego v0.0.0-20230601213035-1f25e70d7b01/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=

View File

@ -1,13 +1,31 @@
# contextmenus # contextmenus
This example shows how to create a context menu for your application. This example shows how to create a context menu for your application.
It demonstrates window level and global context menus.
A simple menu is registered with the window and the application with the id "test".
In our frontend html, we then use the `--custom-contextmenu` style to attach the menu to an element.
We also use the `--custom-contextmenu-data` style to pass data to the menu callback which can be read in Go.
This is really useful when using components to distinguish between different elements.
```go
```html
<div class="region" id="123abc" style="--custom-contextmenu: test; --custom-contextmenu-data: 1">
<h1>1</h1>
</div>
<div class="region" id="234abc" style="--custom-contextmenu: test; --custom-contextmenu-data: 2">
<h1>2</h1>
</div>
```
# Status # Status
| Platform | Status | | Platform | Status |
|----------|-------------| |----------|---------|
| Mac | | | Mac | |
| Windows | Not Working | | Windows | Working |
| Linux | | | Linux | |
# TODO # TODO

View File

@ -3,7 +3,6 @@ package main
import ( import (
"embed" "embed"
_ "embed" _ "embed"
"fmt"
"log" "log"
"github.com/wailsapp/wails/v3/pkg/application" "github.com/wailsapp/wails/v3/pkg/application"
@ -38,12 +37,12 @@ func main() {
contextMenu := app.NewMenu() contextMenu := app.NewMenu()
contextMenu.Add("Click Me").OnClick(func(data *application.Context) { contextMenu.Add("Click Me").OnClick(func(data *application.Context) {
fmt.Printf("Context menu data: %+v\n", data.ContextMenuData()) app.Logger.Info("Context menu", "context data", data.ContextMenuData())
}) })
globalContextMenu := app.NewMenu() globalContextMenu := app.NewMenu()
globalContextMenu.Add("Default context menu item").OnClick(func(data *application.Context) { globalContextMenu.Add("Default context menu item").OnClick(func(data *application.Context) {
fmt.Printf("Context menu data: %+v\n", data.ContextMenuData()) app.Logger.Info("Context menu", "context data", data.ContextMenuData())
}) })
// Registering the menu with a window will make it available to that window only // Registering the menu with a window will make it available to that window only

View File

@ -33,7 +33,7 @@ require (
github.com/samber/lo v1.38.1 // indirect github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect github.com/stretchr/testify v1.8.4 // indirect
github.com/wailsapp/go-webview2 v1.0.7 // indirect github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect golang.org/x/crypto v0.9.0 // indirect

View File

@ -105,6 +105,7 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=

View File

@ -1,3 +1,25 @@
# Events Example # Events Example
This example is not ready for testing yet. This example is a demonstration of using the new events API.
It has 2 windows that can emit events from the frontend and the backend emits an event every 10 seconds.
All events emitted are logged either to the console or the window.
It also demonstrates the use of `RegisterHook` to register a function to be called when an event is emitted.
For one window, it captures the `WindowClosing` event and prevents the window from closing twice.
The other window uses both hooks and events to show the window is gaining focus.
## Running the example
To run the example, simply run the following command:
```bash
go run main.go
```
# Status
| Platform | Status |
|----------|---------|
| Mac | |
| Windows | Working |
| Linux | |

View File

@ -28,13 +28,12 @@ func main() {
// Custom event handling // Custom event handling
app.Events.On("myevent", func(e *application.WailsEvent) { app.Events.On("myevent", func(e *application.WailsEvent) {
app.Logger.Info("[Go] WailsEvent received: %+v\n", e) app.Logger.Info("[Go] WailsEvent received", "name", e.Name, "data", e.Data, "sender", e.Sender, "cancelled", e.Cancelled)
}) })
// OS specific application events // OS specific application events
app.On(events.Common.ApplicationStarted, func(event *application.Event) { app.On(events.Common.ApplicationStarted, func(event *application.Event) {
for { for {
app.Logger.Info("Sending event from Go!")
app.Events.Emit(&application.WailsEvent{ app.Events.Emit(&application.WailsEvent{
Name: "myevent", Name: "myevent",
Data: "hello", Data: "hello",

View File

@ -32,7 +32,7 @@ require (
github.com/rivo/uniseg v0.4.4 // indirect github.com/rivo/uniseg v0.4.4 // indirect
github.com/samber/lo v1.38.1 // indirect github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect
github.com/wailsapp/go-webview2 v1.0.7 // indirect github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect golang.org/x/crypto v0.9.0 // indirect

View File

@ -99,6 +99,7 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=

View File

@ -40,7 +40,7 @@ require (
github.com/samber/lo v1.38.1 // indirect github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect github.com/stretchr/testify v1.8.4 // indirect
github.com/wailsapp/go-webview2 v1.0.7 // indirect github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect golang.org/x/crypto v0.9.0 // indirect

View File

@ -118,6 +118,7 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=

View File

@ -35,7 +35,7 @@ require (
github.com/samber/lo v1.38.1 // indirect github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect github.com/stretchr/testify v1.8.4 // indirect
github.com/wailsapp/go-webview2 v1.0.7 // indirect github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.0 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect
golang.org/x/crypto v0.9.0 // indirect golang.org/x/crypto v0.9.0 // indirect

View File

@ -105,6 +105,7 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/go-webview2 v1.0.8-0.20231010092311-42cbb98eb53b/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=

View File

@ -29,7 +29,7 @@ require (
github.com/pterm/pterm v0.12.51 github.com/pterm/pterm v0.12.51
github.com/samber/lo v1.38.1 github.com/samber/lo v1.38.1
github.com/tc-hib/winres v0.1.6 github.com/tc-hib/winres v0.1.6
github.com/wailsapp/go-webview2 v1.0.7 github.com/wailsapp/go-webview2 v1.0.8
github.com/wailsapp/mimetype v1.4.1 github.com/wailsapp/mimetype v1.4.1
golang.org/x/net v0.10.0 golang.org/x/net v0.10.0
golang.org/x/sys v0.13.0 golang.org/x/sys v0.13.0

View File

@ -111,8 +111,6 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/go-task/task/v3 v3.30.1 h1:HdfCTAJDHoWL3+3RyY+o+0IK1O5xQaSBrZIq2SKOQ84=
github.com/go-task/task/v3 v3.30.1/go.mod h1:QPFn/f18HEmOhbuBYhlQOXX6ZogqzjQz31GA45uZ0mI=
github.com/go-task/task/v3 v3.31.0 h1:o6iyj9gPJXxvxPi/u/l8e025PmM2BqKgtLNPS2i7hV4= github.com/go-task/task/v3 v3.31.0 h1:o6iyj9gPJXxvxPi/u/l8e025PmM2BqKgtLNPS2i7hV4=
github.com/go-task/task/v3 v3.31.0/go.mod h1:/CPDAu9nS3+soqY/e1tTrSo/zxk76lnljEV9aBTeKrg= github.com/go-task/task/v3 v3.31.0/go.mod h1:/CPDAu9nS3+soqY/e1tTrSo/zxk76lnljEV9aBTeKrg=
github.com/goccy/go-json v0.9.6/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.9.6/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
@ -338,8 +336,8 @@ github.com/tc-hib/winres v0.1.6 h1:qgsYHze+BxQPEYilxIz/KCQGaClvI2+yLBAZs+3+0B8=
github.com/tc-hib/winres v0.1.6/go.mod h1:pe6dOR40VOrGz8PkzreVKNvEKnlE8t4yR8A8naL+t7A= github.com/tc-hib/winres v0.1.6/go.mod h1:pe6dOR40VOrGz8PkzreVKNvEKnlE8t4yR8A8naL+t7A=
github.com/tmclane/purego v0.0.0-20230818202843-0b72c8c9140f h1:/HXk9aFXP97CJRzOIphm4pzySmJLqIMhKu1kD5usz1E= github.com/tmclane/purego v0.0.0-20230818202843-0b72c8c9140f h1:/HXk9aFXP97CJRzOIphm4pzySmJLqIMhKu1kD5usz1E=
github.com/tmclane/purego v0.0.0-20230818202843-0b72c8c9140f/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= github.com/tmclane/purego v0.0.0-20230818202843-0b72c8c9140f/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
github.com/wailsapp/go-webview2 v1.0.7 h1:s95+7irJsAsTy1RsjJ6N0cYX7tZ4gP7Uzawds0L2urs= github.com/wailsapp/go-webview2 v1.0.8 h1:hyoFPlMSfb/NM64wuVbgBaq1MASJjqsSUYhN+Rbcr9Y=
github.com/wailsapp/go-webview2 v1.0.7/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo= github.com/wailsapp/go-webview2 v1.0.8/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI=
@ -461,8 +459,6 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -509,16 +505,12 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

View File

@ -7,6 +7,7 @@ export const EventTypes = {
APMResumeAutomatic: "windows:APMResumeAutomatic", APMResumeAutomatic: "windows:APMResumeAutomatic",
APMResumeSuspend: "windows:APMResumeSuspend", APMResumeSuspend: "windows:APMResumeSuspend",
APMPowerSettingChange: "windows:APMPowerSettingChange", APMPowerSettingChange: "windows:APMPowerSettingChange",
ApplicationStarted: "windows:ApplicationStarted",
WebViewNavigationCompleted: "windows:WebViewNavigationCompleted", WebViewNavigationCompleted: "windows:WebViewNavigationCompleted",
WindowInactive: "windows:WindowInactive", WindowInactive: "windows:WindowInactive",
WindowActive: "windows:WindowActive", WindowActive: "windows:WindowActive",

View File

@ -180,7 +180,11 @@ func (m *windowsApp) run() error {
for eventID := range m.parent.applicationEventListeners { for eventID := range m.parent.applicationEventListeners {
m.on(eventID) m.on(eventID)
} }
// Emit application started event
applicationEvents <- &Event{
Id: uint(events.Windows.ApplicationStarted),
ctx: blankApplicationEventContext,
}
_ = m.runMainLoop() _ = m.runMainLoop()
return nil return nil

View File

@ -6,6 +6,7 @@ import "github.com/wailsapp/wails/v3/pkg/events"
var commonApplicationEventMap = map[events.ApplicationEventType]events.ApplicationEventType{ var commonApplicationEventMap = map[events.ApplicationEventType]events.ApplicationEventType{
events.Windows.SystemThemeChanged: events.Common.ThemeChanged, events.Windows.SystemThemeChanged: events.Common.ThemeChanged,
events.Windows.ApplicationStarted: events.Common.ApplicationStarted,
} }
func (m *windowsApp) setupCommonEvents() { func (m *windowsApp) setupCommonEvents() {

View File

@ -35,6 +35,6 @@ func (m *MessageProcessor) processEventsMethod(method int, rw http.ResponseWrite
return return
} }
m.Info("Runtime:", "method", "Events."+eventsMethodNames[method], "event", event) m.Info("Runtime:", "method", "Events."+eventsMethodNames[method], "name", event.Name, "sender", event.Sender, "data", event.Data, "cancelled", event.Cancelled)
} }

View File

@ -1025,7 +1025,9 @@ func (w *WebviewWindow) OpenContextMenu(data *ContextMenuData) {
if w.impl == nil { if w.impl == nil {
return return
} }
InvokeSync(func() {
w.impl.openContextMenu(menu, data) w.impl.openContextMenu(menu, data)
})
} }
// RegisterContextMenu registers a context menu and assigns it the given name. // RegisterContextMenu registers a context menu and assigns it the given name.

View File

@ -815,6 +815,7 @@ func newWindowImpl(parent *WebviewWindow) *windowsWebviewWindow {
func (w *windowsWebviewWindow) openContextMenu(menu *Menu, _ *ContextMenuData) { func (w *windowsWebviewWindow) openContextMenu(menu *Menu, _ *ContextMenuData) {
// Create the menu // Create the menu
thisMenu := NewPopupMenu(w.hwnd, menu) thisMenu := NewPopupMenu(w.hwnd, menu)
thisMenu.Update()
w.currentlyOpenContextMenu = thisMenu w.currentlyOpenContextMenu = thisMenu
thisMenu.ShowAtCursor() thisMenu.ShowAtCursor()
} }
@ -1260,8 +1261,8 @@ func (w *windowsWebviewWindow) processRequest(req *edge.ICoreWebView2WebResource
webviewRequests <- &webViewAssetRequest{ webviewRequests <- &webViewAssetRequest{
Request: webviewRequest, Request: webviewRequest,
windowId: uint(windowID), windowId: w.parent.id,
windowName: globalApplication.getWindowForID(uint(windowID)).Name(), windowName: globalApplication.getWindowForID(w.parent.id).Name(),
} }
} }

View File

@ -33,25 +33,25 @@ type commonEvents struct {
func newCommonEvents() commonEvents { func newCommonEvents() commonEvents {
return commonEvents{ return commonEvents{
ApplicationStarted: 1167, ApplicationStarted: 1168,
WindowMaximise: 1168, WindowMaximise: 1169,
WindowUnMaximise: 1169, WindowUnMaximise: 1170,
WindowFullscreen: 1170, WindowFullscreen: 1171,
WindowUnFullscreen: 1171, WindowUnFullscreen: 1172,
WindowRestore: 1172, WindowRestore: 1173,
WindowMinimise: 1173, WindowMinimise: 1174,
WindowUnMinimise: 1174, WindowUnMinimise: 1175,
WindowClosing: 1175, WindowClosing: 1176,
WindowZoom: 1176, WindowZoom: 1177,
WindowZoomIn: 1177, WindowZoomIn: 1178,
WindowZoomOut: 1178, WindowZoomOut: 1179,
WindowZoomReset: 1179, WindowZoomReset: 1180,
WindowFocus: 1180, WindowFocus: 1181,
WindowLostFocus: 1181, WindowLostFocus: 1182,
WindowShow: 1182, WindowShow: 1183,
WindowHide: 1183, WindowHide: 1184,
WindowDPIChanged: 1184, WindowDPIChanged: 1185,
ThemeChanged: 1185, ThemeChanged: 1186,
} }
} }
@ -320,6 +320,7 @@ type windowsEvents struct {
APMResumeAutomatic ApplicationEventType APMResumeAutomatic ApplicationEventType
APMResumeSuspend ApplicationEventType APMResumeSuspend ApplicationEventType
APMPowerSettingChange ApplicationEventType APMPowerSettingChange ApplicationEventType
ApplicationStarted ApplicationEventType
WebViewNavigationCompleted WindowEventType WebViewNavigationCompleted WindowEventType
WindowInactive WindowEventType WindowInactive WindowEventType
WindowActive WindowEventType WindowActive WindowEventType
@ -344,20 +345,21 @@ func newWindowsEvents() windowsEvents {
APMResumeAutomatic: 1150, APMResumeAutomatic: 1150,
APMResumeSuspend: 1151, APMResumeSuspend: 1151,
APMPowerSettingChange: 1152, APMPowerSettingChange: 1152,
WebViewNavigationCompleted: 1153, ApplicationStarted: 1153,
WindowInactive: 1154, WebViewNavigationCompleted: 1154,
WindowActive: 1155, WindowInactive: 1155,
WindowClickActive: 1156, WindowActive: 1156,
WindowMaximise: 1157, WindowClickActive: 1157,
WindowUnMaximise: 1158, WindowMaximise: 1158,
WindowFullscreen: 1159, WindowUnMaximise: 1159,
WindowUnFullscreen: 1160, WindowFullscreen: 1160,
WindowRestore: 1161, WindowUnFullscreen: 1161,
WindowMinimise: 1162, WindowRestore: 1162,
WindowUnMinimise: 1163, WindowMinimise: 1163,
WindowClose: 1164, WindowUnMinimise: 1164,
WindowSetFocus: 1165, WindowClose: 1165,
WindowKillFocus: 1166, WindowSetFocus: 1166,
WindowKillFocus: 1167,
} }
} }
@ -495,37 +497,38 @@ var eventToJS = map[uint]string{
1150: "windows:APMResumeAutomatic", 1150: "windows:APMResumeAutomatic",
1151: "windows:APMResumeSuspend", 1151: "windows:APMResumeSuspend",
1152: "windows:APMPowerSettingChange", 1152: "windows:APMPowerSettingChange",
1153: "windows:WebViewNavigationCompleted", 1153: "windows:ApplicationStarted",
1154: "windows:WindowInactive", 1154: "windows:WebViewNavigationCompleted",
1155: "windows:WindowActive", 1155: "windows:WindowInactive",
1156: "windows:WindowClickActive", 1156: "windows:WindowActive",
1157: "windows:WindowMaximise", 1157: "windows:WindowClickActive",
1158: "windows:WindowUnMaximise", 1158: "windows:WindowMaximise",
1159: "windows:WindowFullscreen", 1159: "windows:WindowUnMaximise",
1160: "windows:WindowUnFullscreen", 1160: "windows:WindowFullscreen",
1161: "windows:WindowRestore", 1161: "windows:WindowUnFullscreen",
1162: "windows:WindowMinimise", 1162: "windows:WindowRestore",
1163: "windows:WindowUnMinimise", 1163: "windows:WindowMinimise",
1164: "windows:WindowClose", 1164: "windows:WindowUnMinimise",
1165: "windows:WindowSetFocus", 1165: "windows:WindowClose",
1166: "windows:WindowKillFocus", 1166: "windows:WindowSetFocus",
1167: "common:ApplicationStarted", 1167: "windows:WindowKillFocus",
1168: "common:WindowMaximise", 1168: "common:ApplicationStarted",
1169: "common:WindowUnMaximise", 1169: "common:WindowMaximise",
1170: "common:WindowFullscreen", 1170: "common:WindowUnMaximise",
1171: "common:WindowUnFullscreen", 1171: "common:WindowFullscreen",
1172: "common:WindowRestore", 1172: "common:WindowUnFullscreen",
1173: "common:WindowMinimise", 1173: "common:WindowRestore",
1174: "common:WindowUnMinimise", 1174: "common:WindowMinimise",
1175: "common:WindowClosing", 1175: "common:WindowUnMinimise",
1176: "common:WindowZoom", 1176: "common:WindowClosing",
1177: "common:WindowZoomIn", 1177: "common:WindowZoom",
1178: "common:WindowZoomOut", 1178: "common:WindowZoomIn",
1179: "common:WindowZoomReset", 1179: "common:WindowZoomOut",
1180: "common:WindowFocus", 1180: "common:WindowZoomReset",
1181: "common:WindowLostFocus", 1181: "common:WindowFocus",
1182: "common:WindowShow", 1182: "common:WindowLostFocus",
1183: "common:WindowHide", 1183: "common:WindowShow",
1184: "common:WindowDPIChanged", 1184: "common:WindowHide",
1185: "common:ThemeChanged", 1185: "common:WindowDPIChanged",
1186: "common:ThemeChanged",
} }

View File

@ -127,6 +127,7 @@ windows:APMSuspend
windows:APMResumeAutomatic windows:APMResumeAutomatic
windows:APMResumeSuspend windows:APMResumeSuspend
windows:APMPowerSettingChange windows:APMPowerSettingChange
windows:ApplicationStarted
windows:WebViewNavigationCompleted windows:WebViewNavigationCompleted
windows:WindowInactive windows:WindowInactive
windows:WindowActive windows:WindowActive