Couple UI Fixes (#255)

- Disabled UI navigation cache for all pages.
- Restore the renderer<>composer page animation back.
- IdlePage functionality into mail list page.
- Couple bugfixes.
This commit is contained in:
Burak Kaan Köse
2024-06-26 20:00:10 +02:00
committed by GitHub
parent ca40730600
commit 39626e0df9
12 changed files with 180 additions and 109 deletions

View File

@@ -35,6 +35,8 @@ namespace Wino.Views
private bool isRenderingInProgress = false;
private TaskCompletionSource<bool> DOMLoadedTask = new TaskCompletionSource<bool>();
private bool isChromiumDisposed = false;
public WebView2 GetWebView() => Chromium;
public MailRenderingPage()
@@ -43,7 +45,6 @@ namespace Wino.Views
Environment.SetEnvironmentVariable("WEBVIEW2_DEFAULT_BACKGROUND_COLOR", "00FFFFFF");
Environment.SetEnvironmentVariable("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "--enable-features=OverlayScrollbar,msOverlayScrollbarWinStyle,msOverlayScrollbarWinStyleAnimation");
NavigationCacheMode = NavigationCacheMode.Enabled;
}
public override async void OnEditorThemeChanged()
@@ -77,7 +78,7 @@ namespace Wino.Views
}
script += ");";
return await Chromium.ExecuteScriptAsync(script);
return isChromiumDisposed ? string.Empty : await Chromium.ExecuteScriptAsync(script);
}
private async Task RenderInternalAsync(string htmlBody)
@@ -129,9 +130,33 @@ namespace Wino.Views
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
WeakReferenceMessenger.Default.Send(new CancelRenderingContentRequested());
base.OnNavigatedFrom(e);
// Disposing the page.
// Make sure the WebView2 is disposed properly.
DisposeWebView2();
}
private void DisposeWebView2()
{
if (Chromium == null) return;
Chromium.CoreWebView2Initialized -= CoreWebViewInitialized;
Chromium.NavigationStarting -= WebViewNavigationStarting;
if (Chromium.CoreWebView2 != null)
{
Chromium.CoreWebView2.DOMContentLoaded -= DOMContentLoaded;
Chromium.CoreWebView2.NewWindowRequested -= WindowRequested;
}
isChromiumDisposed = true;
Chromium.Close();
GC.Collect();
}
protected override void OnNavigatedTo(NavigationEventArgs e)