diff --git a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs index aab50d0..20bba59 100644 --- a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs +++ b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs @@ -108,7 +108,7 @@ namespace PersistentWindows.Common public bool showDesktop = false; // show desktop when display changes public int fixZorder = 1; // 1 means restore z-order only for snapshot; 2 means restore z-order for all; 0 means no z-order restore at all public int fixZorderMethod = 5; // bit i represent restore method for pass i - public bool fixTaskBar = true; + public int fixTaskBar = -1; public bool pauseAutoRestore = false; public bool promptSessionRestore = false; public bool redrawDesktop = false; @@ -3864,9 +3864,10 @@ namespace PersistentWindows.Common if (IsTaskBar(hWnd)) { - if (!fixTaskBar && !restoringFromDB && !restoringSnapshot) - continue; + if (fixTaskBar == 0 && !restoringFromDB && !restoringSnapshot) + continue; //auto restore taskbar disabled + if (fixTaskBar == -1) //disable possible bogus taskbar restore after game play due to inaccurate position report if (fullScreenGamingWindow != IntPtr.Zero || fullScreenGamingWindows.Count > 0 || exitFullScreenGaming) continue; diff --git a/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs b/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs index fd0b9ab..0f8af11 100644 --- a/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs +++ b/Ninjacrab.PersistentWindows.Solution/SystrayShell/Program.cs @@ -206,7 +206,10 @@ if not errorlevel 1 goto wait_to_finish"; fix_unminimized_window = false; break; case "-fix_taskbar=0": - pwp.fixTaskBar = false; + pwp.fixTaskBar = 0; + break; + case "-fix_taskbar=1": + pwp.fixTaskBar = 1; break; case "-foreground_background_dual_position=0": pwp.enableDualPosSwitch = false;