Phase A: tab architecture integrated into MainWindow - tab strip UI, per-tab WebView2 lifecycle, new-window->tab w/ deferral, audio indicator/mute, session save/restore, shortcuts; E2E on real window (56 tests GREEN)
This commit is contained in:
parent
be01a116ca
commit
b6b7fc341b
7 changed files with 389 additions and 106 deletions
|
|
@ -14,7 +14,6 @@ public sealed class TabItem : INotifyPropertyChanged
|
|||
|
||||
/// <summary>CoreWebView2 (초기화 전 null)</summary>
|
||||
public Microsoft.Web.WebView2.Core.CoreWebView2? Core => View?.CoreWebView2;
|
||||
|
||||
private string _title = "새 탭";
|
||||
public string Title { get => _title; set => Set(ref _title, value); }
|
||||
|
||||
|
|
@ -45,6 +44,11 @@ public sealed class TabItem : INotifyPropertyChanged
|
|||
/// <summary>닫힌 시점의 인덱스(닫힌 탭 복원용). 열려 있는 동안은 무의미.</summary>
|
||||
internal int ClosedIndex { get; set; } = -1;
|
||||
|
||||
// ---- 탭별 일시 상태(앱 레이어 전용) ----
|
||||
internal string? PendingHistoryUrl; // SourceChanged → 타이틀 확정 사이의 기록 대기 URL
|
||||
internal string? PendingSocialUrl; // 소셜 카드 제목 갱신 대기 URL
|
||||
internal FindSession? FindSession; // 탭별 페이지 내 검색 세션 (cv 바인딩)
|
||||
|
||||
public event PropertyChangedEventHandler? PropertyChanged;
|
||||
|
||||
private void Set<T>(ref T field, T value, [CallerMemberName] string? name = null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue