From 30dc7ff29455a1fac01efe8962505fd0c12cabd1 Mon Sep 17 00:00:00 2001 From: qiannian Date: Thu, 25 Jun 2026 18:52:03 +0200 Subject: [PATCH] app: [Windows] don't make raised windows topmost Use HWND_TOP instead of HWND_TOPMOST in ActionRaise so raising a window no longer pins it on top. Signed-off-by: qiannian Signed-off-by: Elias Naur --- app/internal/windows/windows.go | 1 + app/os_windows.go | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/app/internal/windows/windows.go b/app/internal/windows/windows.go index dbd7be79..151c749f 100644 --- a/app/internal/windows/windows.go +++ b/app/internal/windows/windows.go @@ -207,6 +207,7 @@ const ( CFS_POINT = 0x0002 CFS_CANDIDATEPOS = 0x0040 + HWND_TOP = syscall.Handle(0) HWND_TOPMOST = ^(syscall.Handle(1) - 1) // -1 HTCAPTION = 2 diff --git a/app/os_windows.go b/app/os_windows.go index d2098305..9de65392 100644 --- a/app/os_windows.go +++ b/app/os_windows.go @@ -910,19 +910,15 @@ func (w *window) Perform(acts system.Action) { y := (mi.Bottom - mi.Top - dy) / 2 windows.SetWindowPos(w.hwnd, 0, x, y, dx, dy, windows.SWP_NOZORDER|windows.SWP_FRAMECHANGED) case system.ActionRaise: - w.raise() + windows.SetForegroundWindow(w.hwnd) + windows.SetWindowPos(w.hwnd, windows.HWND_TOP, 0, 0, 0, 0, + windows.SWP_NOMOVE|windows.SWP_NOSIZE|windows.SWP_SHOWWINDOW) case system.ActionClose: windows.PostMessage(w.hwnd, windows.WM_CLOSE, 0, 0) } }) } -func (w *window) raise() { - windows.SetForegroundWindow(w.hwnd) - windows.SetWindowPos(w.hwnd, windows.HWND_TOPMOST, 0, 0, 0, 0, - windows.SWP_NOMOVE|windows.SWP_NOSIZE|windows.SWP_SHOWWINDOW) -} - func convertKeyCode(code uintptr) (key.Name, bool) { if '0' <= code && code <= '9' || 'A' <= code && code <= 'Z' { return key.Name(rune(code)), true