diff --git a/v3/UNRELEASED_CHANGELOG.md b/v3/UNRELEASED_CHANGELOG.md index 8e4648038..291c1fb1c 100644 --- a/v3/UNRELEASED_CHANGELOG.md +++ b/v3/UNRELEASED_CHANGELOG.md @@ -23,6 +23,7 @@ After processing, the content will be moved to the main changelog and this file ## Fixed +- Fix fullscreen click-through on Windows when using `Frameless: true` with `BackgroundTypeTransparent` (#4408) by @leaanthony ## Deprecated diff --git a/v3/pkg/application/webview_window_windows.go b/v3/pkg/application/webview_window_windows.go index 434723fb4..1d8e1fbc4 100644 --- a/v3/pkg/application/webview_window_windows.go +++ b/v3/pkg/application/webview_window_windows.go @@ -890,10 +890,13 @@ func (w *windowsWebviewWindow) fullscreen() { w32.GWL_STYLE, w.previousWindowStyle & ^uint32(w32.WS_OVERLAPPEDWINDOW) | (w32.WS_POPUP|w32.WS_VISIBLE), ) + // Remove WS_EX_TRANSPARENT and WS_EX_LAYERED to ensure mouse events are captured in fullscreen mode. + // Both flags must be removed to fix click-through issues when Frameless + BackgroundTypeTransparent are used. + // See: https://github.com/wailsapp/wails/issues/4408 w32.SetWindowLong( w.hwnd, w32.GWL_EXSTYLE, - w.previousWindowExStyle & ^uint32(w32.WS_EX_DLGMODALFRAME), + w.previousWindowExStyle & ^uint32(w32.WS_EX_DLGMODALFRAME|w32.WS_EX_TRANSPARENT|w32.WS_EX_LAYERED), ) w.isCurrentlyFullscreen = true w32.SetWindowPos(w.hwnd, w32.HWND_TOP,