From 8a658a80c016f6af94c91eece78db6006031b1f2 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sun, 25 Jan 2026 12:15:03 +1100 Subject: [PATCH] fix(windows): also remove WS_EX_LAYERED in fullscreen mode Testing revealed that removing WS_EX_TRANSPARENT alone is not sufficient to fix click-through behavior. WS_EX_LAYERED must also be removed for mouse events to be captured in fullscreen mode. The unfullscreen() function already restores w.previousWindowExStyle, so both flags will be properly restored when exiting fullscreen. Co-Authored-By: Claude Opus 4.5 --- v3/pkg/application/webview_window_windows.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v3/pkg/application/webview_window_windows.go b/v3/pkg/application/webview_window_windows.go index c19176f2a..1b39cbae2 100644 --- a/v3/pkg/application/webview_window_windows.go +++ b/v3/pkg/application/webview_window_windows.go @@ -843,13 +843,13 @@ func (w *windowsWebviewWindow) fullscreen() { w32.GWL_STYLE, w.previousWindowStyle & ^uint32(w32.WS_OVERLAPPEDWINDOW) | (w32.WS_POPUP|w32.WS_VISIBLE), ) - // Remove WS_EX_TRANSPARENT to ensure mouse events are captured in fullscreen mode. - // This fixes click-through issues when Frameless + BackgroundTypeTransparent are used. + // 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|w32.WS_EX_TRANSPARENT), + 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,