BASE 1.2.2.1 Fix
This commit is contained in:
1 parent
3abaa4665d
commit
a1fff09097
2 files changed
+6
-10
No files matched your search
+4
-8
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user