BASE 1.2.2.1 Fix

This commit is contained in:
AlastorFox committed 2026-10-12 00:05:53 +03:00
1 parent 4b80e75a0e
commit e3445ab15d
2 files changed
+6 -10

No files matched your search

+4 -8
View File
@@ -27,7 +27,6 @@ public sealed class TabManager : IAsyncDisposable
private bool _navigationInProgress; private bool _navigationInProgress;
private bool _switchInProgress; private bool _switchInProgress;
private bool _restoringSession; private bool _restoringSession;
private readonly List<BrowserTab> _sessionOrder = new();
private readonly string _blockedElementsPath = Path.Combine(AppContext.BaseDirectory, "blocked-elements.json"); private readonly string _blockedElementsPath = Path.Combine(AppContext.BaseDirectory, "blocked-elements.json");
private readonly Dictionary<string, List<string>> _blockedElements; private readonly Dictionary<string, List<string>> _blockedElements;
@@ -82,16 +81,13 @@ public sealed class TabManager : IAsyncDisposable
_restoringSession = false; _restoringSession = false;
SessionReady = true; SessionReady = true;
} }
_sessionOrder.AddRange(Tabs);
await SaveSessionAsync(); await SaveSessionAsync();
} }
public async Task SaveSessionAsync() public async Task SaveSessionAsync()
{ {
var orderedTabs = _sessionOrder.Where(Tabs.Contains).Concat(Tabs.Where(tab => !_sessionOrder.Contains(tab))); var activeIndex = ActiveTab is not null ? Tabs.IndexOf(ActiveTab) : 0;
var snapshotOrder = orderedTabs.ToList(); await SessionStore.SaveAsync(Tabs, activeIndex);
var activeIndex = ActiveTab is not null ? snapshotOrder.IndexOf(ActiveTab) : 0;
await SessionStore.SaveAsync(snapshotOrder, activeIndex);
} }
private async Task RestoreSessionOrDefaultAsync() private async Task RestoreSessionOrDefaultAsync()
@@ -129,7 +125,6 @@ public sealed class TabManager : IAsyncDisposable
{ {
var tab = new BrowserTab(NormalizeAddress(address)); var tab = new BrowserTab(NormalizeAddress(address));
Tabs.Add(tab); Tabs.Add(tab);
if (SessionReady) _sessionOrder.Add(tab);
await SwitchToTabAsync(tab); await SwitchToTabAsync(tab);
return tab; return tab;
} }
@@ -323,13 +318,14 @@ public sealed class TabManager : IAsyncDisposable
await SaveSessionAsync(); await SaveSessionAsync();
} }
public void MoveTab(BrowserTab tab, int targetIndex) public async Task MoveTabAsync(BrowserTab tab, int targetIndex)
{ {
var sourceIndex = Tabs.IndexOf(tab); var sourceIndex = Tabs.IndexOf(tab);
if (sourceIndex < 0 || Tabs.Count < 2) return; if (sourceIndex < 0 || Tabs.Count < 2) return;
targetIndex = Math.Clamp(targetIndex, 0, Tabs.Count - 1); targetIndex = Math.Clamp(targetIndex, 0, Tabs.Count - 1);
if (sourceIndex == targetIndex) return; if (sourceIndex == targetIndex) return;
Tabs.Move(sourceIndex, targetIndex); Tabs.Move(sourceIndex, targetIndex);
await SaveSessionAsync();
} }
public async ValueTask DisposeAsync() public async ValueTask DisposeAsync()
+2 -2
View File
@@ -415,14 +415,14 @@ public partial class MainWindow : Window
e.Handled = true; e.Handled = true;
} }
private void TabStrip_Drop(object sender, WpfDragEventArgs e) private async void TabStrip_Drop(object sender, WpfDragEventArgs e)
{ {
if (_tabManager is null || !e.Data.GetDataPresent(typeof(BrowserTab))) return; if (_tabManager is null || !e.Data.GetDataPresent(typeof(BrowserTab))) return;
var source = e.Data.GetData(typeof(BrowserTab)) as BrowserTab; var source = e.Data.GetData(typeof(BrowserTab)) as BrowserTab;
var target = FindTabItem(e.OriginalSource as DependencyObject)?.DataContext as BrowserTab; var target = FindTabItem(e.OriginalSource as DependencyObject)?.DataContext as BrowserTab;
if (source is null || target is null || ReferenceEquals(source, target)) return; if (source is null || target is null || ReferenceEquals(source, target)) return;
var targetIndex = _tabManager.Tabs.IndexOf(target); var targetIndex = _tabManager.Tabs.IndexOf(target);
if (targetIndex >= 0) _tabManager.MoveTab(source, targetIndex); if (targetIndex >= 0) await _tabManager.MoveTabAsync(source, targetIndex);
e.Handled = true; e.Handled = true;
} }