From 288f94773021ee8db04ee995a992dc66529376a2 Mon Sep 17 00:00:00 2001 From: rmbgame Date: Thu, 10 Jun 2021 03:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99webview3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UI/Views/Controls/WebView3.axaml | 18 +++ .../UI/Views/Controls/WebView3.axaml.cs | 106 ++++++++++++++++++ .../Controls/{WebView3.cs => WebViewBase.cs} | 18 +-- .../Views/Pages/About/About_ChangeLog.axaml | 3 +- .../Pages/About/About_Changelog.axaml.cs | 54 +-------- .../UI/Views/Pages/About/About_FAQPage.axaml | 1 - .../Views/Pages/About/About_FAQPage.axaml.cs | 55 +-------- .../Views/Pages/ArchiSteamFarmPlusPage.axaml | 16 ++- .../UI/Views/Pages/DebugWebViewPage.axaml.cs | 12 +- .../UI/Views/Windows/FluentWindow.cs | 4 +- .../UI/Views/Windows/WebView3Window.axaml | 6 +- .../UI/Views/Windows/WebView3Window.axaml.cs | 38 +++---- .../ST.Client.Desktop.Avalonia.csproj | 5 - .../UI/ViewModels/MainWindowViewModel.cs | 2 +- 14 files changed, 187 insertions(+), 151 deletions(-) create mode 100644 src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml create mode 100644 src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml.cs rename src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/{WebView3.cs => WebViewBase.cs} (97%) diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml new file mode 100644 index 000000000..6eb052cd3 --- /dev/null +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml @@ -0,0 +1,18 @@ + + + + + + diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml.cs new file mode 100644 index 000000000..14b1ace48 --- /dev/null +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.axaml.cs @@ -0,0 +1,106 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.LogicalTree; +using Avalonia.Markup.Xaml; +using CefNet; +using System.Application.UI.Resx; +using System.Application.UI.ViewModels; + +namespace System.Application.UI.Views.Controls +{ + public partial class WebView3 : UserControl, IDisposable + { + readonly ProgressRing webViewLoading; + bool disposedValue; + + public WebViewBase Browser { get; } + + /// + /// webview url property. + /// + public static readonly StyledProperty UrlProperty = + AvaloniaProperty.Register(nameof(Url), WebView3WindowViewModel.AboutBlank); + + public string Url + { + get { return GetValue(UrlProperty); } + set { SetValue(UrlProperty, value); } + } + + public WebView3() + { + InitializeComponent(); + + webViewLoading = this.FindControl(nameof(webViewLoading)); + Browser = this.FindControl(nameof(Browser)); + Browser.Opacity = 0; + Browser.LoadingStateChange += WebView_LoadingStateChange; + + this.GetObservable(UrlProperty) + .Subscribe(x => + { + Navigate(Url); + }); + } + + public void Navigate(string url) + { + if (Browser.BrowserObject == null) + { + Browser.InitialUrl = url; + } + else + { + Browser.Navigate(url); + } + } + + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + + private void WebView_LoadingStateChange(object? sender, LoadingStateChangeEventArgs e) + { + if (!e.Busy) + { + if (Browser.Opacity != 1) Browser.Opacity = 1; + if (webViewLoading.IsVisible) webViewLoading.IsVisible = false; + } + } + + protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) + { + base.OnDetachedFromLogicalTree(e); + Dispose(); + } + + protected virtual void Dispose(bool disposing) + { + if (!disposedValue) + { + if (disposing) + { + // TODO: 释放托管状态(托管对象) + if (Browser != null) + { + Browser.LoadingStateChange -= WebView_LoadingStateChange; + ((IDisposable)Browser).Dispose(); + } + } + + // TODO: 释放未托管的资源(未托管的对象)并替代终结器 + // TODO: 将大型字段设置为 null + disposedValue = true; + } + } + + public void Dispose() + { + // 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中 + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebViewBase.cs similarity index 97% rename from src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.cs rename to src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebViewBase.cs index e31163568..bc71f21ec 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebView3.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Controls/WebViewBase.cs @@ -16,7 +16,7 @@ using static System.Application.Services.CloudService.Constants; // ReSharper disable once CheckNamespace namespace System.Application.UI.Views.Controls { - public sealed class WebView3 : WebView + public class WebViewBase : WebView { public static readonly RoutedEvent FullscreenEvent = RoutedEvent.Register("Fullscreen", RoutingStrategies.Bubble); @@ -26,11 +26,11 @@ namespace System.Application.UI.Views.Controls remove { RemoveHandler(FullscreenEvent, value); } } - public WebView3() + public WebViewBase() { } - public WebView3(WebView opener) : base(opener) + public WebViewBase(WebView opener) : base(opener) { } @@ -87,7 +87,7 @@ namespace System.Application.UI.Views.Controls public class FullscreenModeChangeEventArgs : RoutedEventArgs { - public FullscreenModeChangeEventArgs(IInteractive source, bool fullscreen) : base(WebView3.FullscreenEvent, source) + public FullscreenModeChangeEventArgs(IInteractive source, bool fullscreen) : base(WebViewBase.FullscreenEvent, source) { Fullscreen = fullscreen; } @@ -100,14 +100,14 @@ namespace System.Application.UI.Views.Controls const int SHOW_DEV_TOOLS = (int)CefMenuId.UserFirst + 0; //const int INSPECT_ELEMENT = (int)CefMenuId.UserFirst + 1; - readonly WebView3 webView; + readonly WebViewBase webView; - public WebView3Glue(WebView3 view) : base(view) + public WebView3Glue(WebViewBase view) : base(view) { webView = view; } - private new WebView3 WebView => (WebView3)base.WebView; + private new WebViewBase WebView => (WebViewBase)base.WebView; protected override bool OnSetFocus(CefBrowser browser, CefFocusSource source) { @@ -332,11 +332,11 @@ namespace System.Application.UI.Views.Controls /// unsafe class StreamResponseFilter : CefResponseFilter { - readonly WebView3 webView; + readonly WebViewBase webView; readonly bool rspIsCiphertext; MemoryStream? memoryStream; - public StreamResponseFilter(WebView3 webView, bool rspIsCiphertext) + public StreamResponseFilter(WebViewBase webView, bool rspIsCiphertext) { this.webView = webView; this.rspIsCiphertext = rspIsCiphertext; diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_ChangeLog.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_ChangeLog.axaml index 8580f6bea..124f8785e 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_ChangeLog.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_ChangeLog.axaml @@ -6,7 +6,6 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="System.Application.UI.Views.Pages.About_ChangeLog"> - - + diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_Changelog.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_Changelog.axaml.cs index ecb4b68a0..a09778014 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_Changelog.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_Changelog.axaml.cs @@ -8,71 +8,25 @@ using System.Application.UI.Views.Controls; namespace System.Application.UI.Views.Pages { - public class About_ChangeLog : UserControl, IDisposable + public class About_ChangeLog : UserControl { - readonly WebView3 webViewQA; - readonly ProgressRing webViewQALoading; - bool disposedValue; + readonly WebView3 webView; public About_ChangeLog() { InitializeComponent(); - webViewQALoading = this.FindControl(nameof(webViewQALoading)); - webViewQA = this.FindControl(nameof(webViewQA)); - webViewQA.Opacity = 0; - webViewQA.LoadingStateChange += WebView_LoadingStateChange; - webViewQA.InitialUrl = string.Format( + webView = this.FindControl(nameof(webView)); + webView.Url = string.Format( "https://steampp.net/changelogbox?theme={0}&language={1}", CefNetApp.GetTheme(), R.Language); } - private void WebView_LoadingStateChange(object? sender, LoadingStateChangeEventArgs e) - { - if (!e.Busy) - { - if (webViewQA.Opacity != 1) webViewQA.Opacity = 1; - if (webViewQALoading.IsVisible) webViewQALoading.IsVisible = false; - } - } - private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } - protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) - { - base.OnDetachedFromLogicalTree(e); - Dispose(); - } - - protected virtual void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) - { - // TODO: 释放托管状态(托管对象) - if (webViewQA != null) - { - webViewQA.LoadingStateChange -= WebView_LoadingStateChange; - ((IDisposable)webViewQA).Dispose(); - } - } - - // TODO: 释放未托管的资源(未托管的对象)并替代终结器 - // TODO: 将大型字段设置为 null - disposedValue = true; - } - } - - public void Dispose() - { - // 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中 - Dispose(disposing: true); - GC.SuppressFinalize(this); - } } } \ No newline at end of file diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml index 4abff1645..5b4afafcb 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml @@ -7,6 +7,5 @@ x:Class="System.Application.UI.Views.Pages.About_FAQPage"> - diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml.cs index 8597dd3ee..791369992 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/About/About_FAQPage.axaml.cs @@ -8,71 +8,24 @@ using System.Application.UI.Views.Controls; namespace System.Application.UI.Views.Pages { - public class About_FAQPage : UserControl, IDisposable + public class About_FAQPage : UserControl { - readonly WebView3 webViewQA; - readonly ProgressRing webViewQALoading; - bool disposedValue; + WebView3 webViewQA; public About_FAQPage() { InitializeComponent(); - - webViewQALoading = this.FindControl(nameof(webViewQALoading)); - webViewQA = this.FindControl(nameof(webViewQA)); - webViewQA.Opacity = 0; - webViewQA.LoadingStateChange += WebView_LoadingStateChange; - webViewQA.InitialUrl = string.Format( + webViewQA = this.FindControl("webViewQA"); + webViewQA.Url = string.Format( "https://steampp.net/faqbox?theme={0}&language={1}", CefNetApp.GetTheme(), R.Language); } - private void WebView_LoadingStateChange(object? sender, LoadingStateChangeEventArgs e) - { - if (!e.Busy) - { - if (webViewQA.Opacity != 1) webViewQA.Opacity = 1; - if (webViewQALoading.IsVisible) webViewQALoading.IsVisible = false; - } - } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } - - protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e) - { - base.OnDetachedFromLogicalTree(e); - Dispose(); - } - - protected virtual void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) - { - // TODO: 释放托管状态(托管对象) - if (webViewQA != null) - { - webViewQA.LoadingStateChange -= WebView_LoadingStateChange; - ((IDisposable)webViewQA).Dispose(); - } - } - - // TODO: 释放未托管的资源(未托管的对象)并替代终结器 - // TODO: 将大型字段设置为 null - disposedValue = true; - } - } - - public void Dispose() - { - // 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中 - Dispose(disposing: true); - GC.SuppressFinalize(this); - } } } \ No newline at end of file diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml index 4eaf7657d..a45096b70 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml @@ -11,5 +11,19 @@ x:DataType="vm:ArchiSteamFarmPlusPageViewModel" x:CompileBindings="True" x:Class="System.Application.UI.Views.Pages.ArchiSteamFarmPlusPage"> - + + + + + + + + + + + + + + + diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/DebugWebViewPage.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/DebugWebViewPage.axaml.cs index e3557750a..707352705 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/DebugWebViewPage.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/DebugWebViewPage.axaml.cs @@ -9,7 +9,7 @@ namespace System.Application.UI.Views.Pages { public class DebugWebViewPage : UserControl, IDisposable { - readonly WebView webView; + readonly WebView3 webView; readonly TextBox urlTextBox; public DebugWebViewPage() @@ -17,7 +17,7 @@ namespace System.Application.UI.Views.Pages InitializeComponent(); webView = this.FindControl("webView"); - webView.InitialUrl = "chrome://version"; + webView.Url = "chrome://version"; //webView.BrowserCreated += WebView_BrowserCreated; urlTextBox = this.FindControl("urlTextBox"); @@ -62,21 +62,21 @@ namespace System.Application.UI.Views.Pages { if (disposing) { - // TODO: ÊͷÅÍйÜ״̬(ÍйܶÔÏó) + // TODO: 释放托管状态(托管对象) if (webView != null) { ((IDisposable)webView).Dispose(); } } - // TODO: ÊͷÅδÍйܵÄ×ÊԴ(δÍйܵĶÔÏó)²¢Ìæ´úÖսáÆ÷ - // TODO: ½«´óÐÍ×ֶÎÉèÖÃΪ null + // TODO: 释放未托管的资源(未托管的对象)并替代终结器 + // TODO: 将大型字段设置为 null disposedValue = true; } } public void Dispose() { - // ²»Ҫ¸ü¸Ĵ˴úÂ롣Ç뽫ÇåÀí´úÂë·ÅÈ롰Dispose(bool disposing)¡±·½·¨ÖÐ + // 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中 Dispose(disposing: true); //GC.SuppressFinalize(this); } diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/FluentWindow.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/FluentWindow.cs index fc1495e05..9c271c8ae 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/FluentWindow.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/FluentWindow.cs @@ -114,7 +114,7 @@ namespace Avalonia.Controls else if (DI.Platform == System.Platform.Apple) { ExtendClientAreaChromeHints = - ExtendClientAreaChromeHints.SystemChrome; + ExtendClientAreaChromeHints.OSXThickTitleBar; } else { @@ -225,7 +225,7 @@ namespace Avalonia.Controls else if (DI.Platform == System.Platform.Apple) { ExtendClientAreaChromeHints = - ExtendClientAreaChromeHints.SystemChrome; + ExtendClientAreaChromeHints.OSXThickTitleBar; } else { diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml index 7032c4c6d..f012d59b7 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml @@ -31,9 +31,9 @@ MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}" TintOpacity="1"/> - - - + + + diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml.cs index 90912d07d..8b7f60fc4 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Windows/WebView3Window.axaml.cs @@ -29,11 +29,10 @@ namespace System.Application.UI.Views.Windows this.AttachDevTools(); #endif webView = this.FindControl(nameof(webView)); - webView.InitialUrl = WebView3WindowViewModel.AboutBlank; - webView.Opacity = 0; - webView.DocumentTitleChanged += WebView_DocumentTitleChanged; - webView.LoadingStateChange += WebView_LoadingStateChange; - webView.BrowserCreated += WebView_BrowserCreated; + webView.Browser.InitialUrl = WebView3WindowViewModel.AboutBlank; + webView.Browser.DocumentTitleChanged += WebView_DocumentTitleChanged; + webView.Browser.LoadingStateChange += WebView_LoadingStateChange; + webView.Browser.BrowserCreated += WebView_BrowserCreated; } CancellationTokenSource? cts; @@ -58,7 +57,7 @@ namespace System.Application.UI.Views.Windows } if (isDelayed && vm.IsLoading) { - webView.Stop(); + webView.Browser.Stop(); await WebViewLoadingTimeoutAsync(vm); } } @@ -106,7 +105,7 @@ namespace System.Application.UI.Views.Windows } if (!e.Busy) { - var mainFrame = webView.GetMainFrame(); + var mainFrame = webView.Browser.GetMainFrame(); if (mainFrame != null) { var mainFrameSource = await mainFrame.GetSourceAsync(default); @@ -115,7 +114,6 @@ namespace System.Application.UI.Views.Windows await WebViewLoadingTimeoutAsync(vm); return; } - if (webView.Opacity != 1) webView.Opacity = 1; if (vm.IsLoading) { vm.IsLoading = false; @@ -128,7 +126,7 @@ namespace System.Application.UI.Views.Windows string? initialUrl; private void WebView_BrowserCreated(object? sender, EventArgs e) { - if (initialUrl != null && webView.BrowserObject != null) + if (initialUrl != null && webView.Browser.BrowserObject != null) { webView.Navigate(initialUrl); } @@ -136,7 +134,7 @@ namespace System.Application.UI.Views.Windows void Navigate(string url) { - if (webView.BrowserObject == null) + if (webView.Browser.BrowserObject == null) { initialUrl = url; } @@ -203,9 +201,9 @@ namespace System.Application.UI.Views.Windows { await LoginUsingSteamClientCookiesAsync(); if (loginUsingSteamClientState == LoginUsingSteamClientState.Success - && webView.BrowserObject != null) + && webView.Browser.BrowserObject != null) { - webView.Reload(); + webView.Browser.Reload(); } } @@ -218,7 +216,7 @@ namespace System.Application.UI.Views.Windows vm.Close += Close; if (!string.IsNullOrWhiteSpace(vm.Title)) { - webView.DocumentTitleChanged -= WebView_DocumentTitleChanged; + webView.Browser.DocumentTitleChanged -= WebView_DocumentTitleChanged; } if (vm.UseLoginUsingSteamClient) { @@ -249,10 +247,10 @@ namespace System.Application.UI.Views.Windows Navigate(x); } }).AddTo(vm); - vm.WhenAnyValue(x => x.StreamResponseFilterUrls).Subscribe(x => webView.StreamResponseFilterUrls = x).AddTo(vm); - vm.WhenAnyValue(x => x.FixedSinglePage).Subscribe(x => webView.FixedSinglePage = x).AddTo(vm); - vm.WhenAnyValue(x => x.IsSecurity).Subscribe(x => webView.IsSecurity = x).AddTo(vm); - webView.OnStreamResponseFilterResourceLoadComplete += vm.OnStreamResponseFilterResourceLoadComplete; + vm.WhenAnyValue(x => x.StreamResponseFilterUrls).Subscribe(x => webView.Browser.StreamResponseFilterUrls = x).AddTo(vm); + vm.WhenAnyValue(x => x.FixedSinglePage).Subscribe(x => webView.Browser.FixedSinglePage = x).AddTo(vm); + vm.WhenAnyValue(x => x.IsSecurity).Subscribe(x => webView.Browser.IsSecurity = x).AddTo(vm); + webView.Browser.OnStreamResponseFilterResourceLoadComplete += vm.OnStreamResponseFilterResourceLoadComplete; } } @@ -302,11 +300,11 @@ namespace System.Application.UI.Views.Windows if (webView != null) { cts?.Cancel(); - webView.DocumentTitleChanged -= WebView_DocumentTitleChanged; - webView.LoadingStateChange -= WebView_LoadingStateChange; + webView.Browser.DocumentTitleChanged -= WebView_DocumentTitleChanged; + webView.Browser.LoadingStateChange -= WebView_LoadingStateChange; if (DataContext is WebView3WindowViewModel vm) { - webView.OnStreamResponseFilterResourceLoadComplete -= vm.OnStreamResponseFilterResourceLoadComplete; + webView.Browser.OnStreamResponseFilterResourceLoadComplete -= vm.OnStreamResponseFilterResourceLoadComplete; } ((IDisposable)webView).Dispose(); } diff --git a/src/ST.Client.Desktop.Avalonia/ST.Client.Desktop.Avalonia.csproj b/src/ST.Client.Desktop.Avalonia/ST.Client.Desktop.Avalonia.csproj index 11817dff8..ec9ef33d6 100644 --- a/src/ST.Client.Desktop.Avalonia/ST.Client.Desktop.Avalonia.csproj +++ b/src/ST.Client.Desktop.Avalonia/ST.Client.Desktop.Avalonia.csproj @@ -57,9 +57,4 @@ - - - ArchiSteamFarmPlusPage.axaml - - \ No newline at end of file diff --git a/src/ST.Client.Desktop/UI/ViewModels/MainWindowViewModel.cs b/src/ST.Client.Desktop/UI/ViewModels/MainWindowViewModel.cs index cf5bb4274..ee519eea8 100644 --- a/src/ST.Client.Desktop/UI/ViewModels/MainWindowViewModel.cs +++ b/src/ST.Client.Desktop/UI/ViewModels/MainWindowViewModel.cs @@ -75,8 +75,8 @@ namespace System.Application.UI.ViewModels AddTabItem(); AddTabItem(); AddTabItem(); + AddTabItem(); //AddTabItem(); - //AddTabItem(); if (DI.Platform == Platform.Windows) AddTabItem(); //AddTabItem();