From bed63a11f468e67dbe14b709f766fcf4a8e6df04 Mon Sep 17 00:00:00 2001 From: Kang Yu Date: Fri, 9 Aug 2024 21:02:40 -0700 Subject: [PATCH] avoid webpage activation disturb auto restore --- .../Common/HotKeyWindow.cs | 11 +++++++++-- .../Common/PersistentWindowProcessor.cs | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Ninjacrab.PersistentWindows.Solution/Common/HotKeyWindow.cs b/Ninjacrab.PersistentWindows.Solution/Common/HotKeyWindow.cs index a6d68d0..78788d0 100644 --- a/Ninjacrab.PersistentWindows.Solution/Common/HotKeyWindow.cs +++ b/Ninjacrab.PersistentWindows.Solution/Common/HotKeyWindow.cs @@ -30,6 +30,7 @@ namespace PersistentWindows.Common private bool active = false; private static bool tiny = false; private static bool browserWindowActivated = false; + private static bool restoring = false; private int origWidth; private int origHeight; private int mouseOffset = 0; //mouse dithering to workaround mouse location mis-update issue in rdp session @@ -635,9 +636,10 @@ namespace PersistentWindows.Common } - public static void BrowserActivate(IntPtr hwnd, bool is_browser_window = true) + public static void BrowserActivate(IntPtr hwnd, bool is_browser_window = true, bool in_restore = false) { browserWindowActivated = is_browser_window; + restoring = in_restore; if (!tiny && !User32.IsWindowVisible(commanderWnd)) return; @@ -822,12 +824,17 @@ namespace PersistentWindows.Common IntPtr fgwnd = GetForegroundWindow(); if (!PersistentWindowProcessor.IsBrowserWindow(fgwnd)) { - if (browserWindowActivated) + if (browserWindowActivated || restoring) StartAliveTimer(6, 1000); else Visible = false; return; } + else if (restoring) + { + StartAliveTimer(6, 1000); + return; + } RECT rect = new RECT(); User32.GetWindowRect(fgwnd, ref rect); diff --git a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs index 75f4e5d..9b5d406 100644 --- a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs +++ b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs @@ -1321,7 +1321,7 @@ namespace PersistentWindows.Common { IntPtr topHwnd = User32.GetAncestor(hwnd, User32.GetAncestorRoot); if (hwnd == topHwnd) - HotKeyWindow.BrowserActivate(topHwnd); + HotKeyWindow.BrowserActivate(topHwnd, in_restore : restoringFromMem); } else HotKeyWindow.BrowserActivate(hwnd, false);