diff --git a/v3/examples/window/main.go b/v3/examples/window/main.go index 67b213e934b..bc8e5d13298 100644 --- a/v3/examples/window/main.go +++ b/v3/examples/window/main.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "math/rand" + "os" "runtime" "strconv" "time" @@ -100,6 +101,21 @@ func main() { }).Show() windowCounter++ }) + myMenu.Add("New WebviewWindow (ignores mouse events"). + SetAccelerator("CmdOrCtrl+F"). + OnClick(func(ctx *application.Context) { + app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ + HTML: "
", + X: rand.Intn(1000), + Y: rand.Intn(800), + IgnoreMouseEvents: true, + BackgroundType: application.BackgroundTypeTransparent, + Mac: application.MacWindow{ + InvisibleTitleBarHeight: 50, + }, + }).Show() + windowCounter++ + }) if runtime.GOOS == "darwin" { myMenu.Add("New WebviewWindow (MacTitleBarHiddenInset)"). OnClick(func(ctx *application.Context) { @@ -384,6 +400,16 @@ func main() { _ = w.Print() }) }) + printMenu.Add("Capture PNG").OnClick(func(ctx *application.Context) { + currentWindow(func(w *application.WebviewWindow) { + img, err := w.CapturePNG() + if err != nil { + application.ErrorDialog().SetTitle("Error").SetMessage(err.Error()).Show() + return + } + os.WriteFile("capture.png", img, 0644) + }) + }) app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ BackgroundColour: application.NewRGB(33, 37, 41), diff --git a/v3/pkg/application/options_webview_window.go b/v3/pkg/application/options_webview_window.go index 9ec4cfb410a..daabe69f838 100644 --- a/v3/pkg/application/options_webview_window.go +++ b/v3/pkg/application/options_webview_window.go @@ -115,6 +115,9 @@ type WebviewWindowOptions struct { // KeyBindings is a map of key bindings to functions KeyBindings map[string]func(window *WebviewWindow) + + // IgnoreMouseEvents will ignore mouse events in the window + IgnoreMouseEvents bool } var WebviewWindowDefaults = &WebviewWindowOptions{ diff --git a/v3/pkg/application/webview_window_windows.go b/v3/pkg/application/webview_window_windows.go index ca55e53fc04..d5f63772f9a 100644 --- a/v3/pkg/application/webview_window_windows.go +++ b/v3/pkg/application/webview_window_windows.go @@ -179,6 +179,9 @@ func (w *windowsWebviewWindow) run() { exStyle = w32.WS_EX_CONTROLPARENT if options.BackgroundType != BackgroundTypeSolid { exStyle |= w32.WS_EX_NOREDIRECTIONBITMAP + if w.parent.options.IgnoreMouseEvents { + exStyle |= w32.WS_EX_TRANSPARENT | w32.WS_EX_LAYERED + } } if options.AlwaysOnTop { exStyle |= w32.WS_EX_TOPMOST