From 8e16908fceda4b972ce41d13d664e321e9e6591a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kaan=20K=C3=B6se?= Date: Mon, 20 Oct 2025 19:17:52 +0200 Subject: [PATCH] Fix flickering on item selection and context menus. --- Wino.Mail.WinUI/Views/MailListPage.xaml | 2 ++ Wino.Mail.WinUI/Views/MailListPage.xaml.cs | 4 ++-- Wino.Mail.WinUI/Views/MailRenderingPage.xaml.cs | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Wino.Mail.WinUI/Views/MailListPage.xaml b/Wino.Mail.WinUI/Views/MailListPage.xaml index c2377628..72f52bb9 100644 --- a/Wino.Mail.WinUI/Views/MailListPage.xaml +++ b/Wino.Mail.WinUI/Views/MailListPage.xaml @@ -72,6 +72,7 @@ x:DefaultBindMode="OneWay" CenterHoverAction="{Binding ElementName=root, Path=ViewModel.PreferencesService.CenterHoverAction, Mode=OneWay}" ContextRequested="MailItemContextRequested" + DataContext="{x:Bind}" DisplayMode="{Binding ElementName=root, Path=ViewModel.PreferencesService.MailItemDisplayMode, Mode=OneWay}" HoverActionExecutedCommand="{Binding ElementName=root, Path=ViewModel.ExecuteHoverActionCommand}" IsAvatarVisible="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsShowSenderPicturesEnabled, Mode=OneWay}" @@ -112,6 +113,7 @@ x:DefaultBindMode="OneWay" CenterHoverAction="{Binding ElementName=root, Path=ViewModel.PreferencesService.CenterHoverAction, Mode=OneWay}" ContextRequested="MailItemContextRequested" + DataContext="{x:Bind}" DisplayMode="{Binding ElementName=root, Path=ViewModel.PreferencesService.MailItemDisplayMode, Mode=OneWay}" HoverActionExecutedCommand="{Binding ElementName=root, Path=ViewModel.ExecuteHoverActionCommand}" IsAvatarVisible="{Binding ElementName=root, Path=ViewModel.PreferencesService.IsShowSenderPicturesEnabled, Mode=OneWay}" diff --git a/Wino.Mail.WinUI/Views/MailListPage.xaml.cs b/Wino.Mail.WinUI/Views/MailListPage.xaml.cs index 011d6aeb..8c060362 100644 --- a/Wino.Mail.WinUI/Views/MailListPage.xaml.cs +++ b/Wino.Mail.WinUI/Views/MailListPage.xaml.cs @@ -540,9 +540,9 @@ public sealed partial class MailListPage : MailListPageAbstract, private void ListSelectionChanged(ItemsView sender, ItemsViewSelectionChangedEventArgs args) { UpdateSelectAllButtonStatus(); - UpdateAdaptiveness(); - SynchronizeSelectedItems(); + + UpdateAdaptiveness(); } private static object _selectedItemsLock = new object(); diff --git a/Wino.Mail.WinUI/Views/MailRenderingPage.xaml.cs b/Wino.Mail.WinUI/Views/MailRenderingPage.xaml.cs index 20bfbb50..e3a56c21 100644 --- a/Wino.Mail.WinUI/Views/MailRenderingPage.xaml.cs +++ b/Wino.Mail.WinUI/Views/MailRenderingPage.xaml.cs @@ -121,6 +121,10 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract, { base.OnNavigatedFrom(e); + WeakReferenceMessenger.Default.Unregister(this); + WeakReferenceMessenger.Default.Unregister(this); + WeakReferenceMessenger.Default.Unregister(this); + // Disposing the page. // Make sure the WebView2 is disposed properly. @@ -150,6 +154,10 @@ public sealed partial class MailRenderingPage : MailRenderingPageAbstract, { base.OnNavigatedTo(e); + WeakReferenceMessenger.Default.Register(this); + WeakReferenceMessenger.Default.Register(this); + WeakReferenceMessenger.Default.Register(this); + var anim = ConnectedAnimationService.GetForCurrentView().GetAnimation("WebViewConnectedAnimation"); anim?.TryStart(Chromium);