Fix online search dedupe and pane layout scrolling
This commit is contained in:
@@ -642,22 +642,27 @@
|
||||
</ListView>
|
||||
</Grid>
|
||||
|
||||
<StackPanel
|
||||
<ScrollViewer
|
||||
x:Name="ContactsPaneContent"
|
||||
Margin="20,20,16,0"
|
||||
Spacing="6"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
HorizontalScrollMode="Disabled"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
VerticalScrollMode="Auto"
|
||||
Visibility="Collapsed">
|
||||
<TextBlock
|
||||
FontSize="16"
|
||||
FontWeight="SemiBold"
|
||||
Text="{x:Bind domain:Translator.ContactsPane_DescriptionTitle, Mode=OneTime}"
|
||||
TextWrapping="WrapWholeWords" />
|
||||
<TextBlock
|
||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||
Style="{StaticResource BodyTextBlockStyle}"
|
||||
Text="{x:Bind domain:Translator.ContactsPane_DescriptionBody, Mode=OneTime}"
|
||||
TextWrapping="WrapWholeWords" />
|
||||
</StackPanel>
|
||||
<StackPanel Spacing="6">
|
||||
<TextBlock
|
||||
FontSize="16"
|
||||
FontWeight="SemiBold"
|
||||
Text="{x:Bind domain:Translator.ContactsPane_DescriptionTitle, Mode=OneTime}"
|
||||
TextWrapping="WrapWholeWords" />
|
||||
<TextBlock
|
||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||
Style="{StaticResource BodyTextBlockStyle}"
|
||||
Text="{x:Bind domain:Translator.ContactsPane_DescriptionBody, Mode=OneTime}"
|
||||
TextWrapping="WrapWholeWords" />
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</muxc:NavigationView.PaneCustomContent>
|
||||
<Grid ColumnSpacing="0">
|
||||
|
||||
@@ -29,6 +29,7 @@ using Wino.Mail.ViewModels.Data;
|
||||
using Wino.Mail.WinUI.ViewModels;
|
||||
using Wino.Mail.WinUI.Controls;
|
||||
using Wino.Mail.WinUI.Helpers;
|
||||
using Wino.Helpers;
|
||||
using Wino.MenuFlyouts;
|
||||
using Wino.MenuFlyouts.Context;
|
||||
using Wino.Messaging.Client.Accounts;
|
||||
@@ -50,10 +51,15 @@ public sealed partial class WinoAppShell : Views.Abstract.WinoAppShellAbstract,
|
||||
{
|
||||
private const string StateDefaultShellContent = "DefaultShellContentState";
|
||||
private const string StateEventDetailsContent = "EventDetailsContentState";
|
||||
private const int PaneCustomContentRowIndex = 4;
|
||||
private const int PaneItemsContainerRowIndex = 6;
|
||||
private WinoApplicationMode? _activeMode;
|
||||
private bool _isSyncingNavigationViewSelection;
|
||||
private bool _isSynchronizingVisibleDateRangeCalendar;
|
||||
private bool _isPreparedForWindowClose;
|
||||
private Grid? _paneContentGrid;
|
||||
private RowDefinition? _paneCustomContentRowDefinition;
|
||||
private RowDefinition? _paneItemsContainerRowDefinition;
|
||||
|
||||
public WinoAppShell()
|
||||
{
|
||||
@@ -681,6 +687,22 @@ public sealed partial class WinoAppShell : Views.Abstract.WinoAppShellAbstract,
|
||||
|
||||
private void UpdateNavigationPaneLayout(NavigationViewDisplayMode displayMode)
|
||||
{
|
||||
EnsureNavigationPaneLayoutParts();
|
||||
|
||||
bool shouldStretchCustomPane = displayMode == NavigationViewDisplayMode.Expanded
|
||||
&& navigationView.IsPaneOpen
|
||||
&& (ViewModel.IsCalendarMode || ViewModel.IsContactsMode);
|
||||
|
||||
if (_paneCustomContentRowDefinition != null && _paneItemsContainerRowDefinition != null)
|
||||
{
|
||||
_paneCustomContentRowDefinition.Height = shouldStretchCustomPane
|
||||
? new GridLength(1, GridUnitType.Star)
|
||||
: GridLength.Auto;
|
||||
_paneItemsContainerRowDefinition.Height = shouldStretchCustomPane
|
||||
? GridLength.Auto
|
||||
: new GridLength(1, GridUnitType.Star);
|
||||
}
|
||||
|
||||
if (displayMode == NavigationViewDisplayMode.Expanded && navigationView.IsPaneOpen)
|
||||
{
|
||||
if (ViewModel.IsCalendarMode)
|
||||
@@ -710,6 +732,17 @@ public sealed partial class WinoAppShell : Views.Abstract.WinoAppShellAbstract,
|
||||
: new Thickness(0);
|
||||
}
|
||||
|
||||
private void EnsureNavigationPaneLayoutParts()
|
||||
{
|
||||
_paneContentGrid ??= WinoVisualTreeHelper.GetChildObject<Grid>(navigationView, "PaneContentGrid");
|
||||
|
||||
if (_paneContentGrid == null || _paneContentGrid.RowDefinitions.Count <= PaneItemsContainerRowIndex)
|
||||
return;
|
||||
|
||||
_paneCustomContentRowDefinition ??= _paneContentGrid.RowDefinitions[PaneCustomContentRowIndex];
|
||||
_paneItemsContainerRowDefinition ??= _paneContentGrid.RowDefinitions[PaneItemsContainerRowIndex];
|
||||
}
|
||||
|
||||
private async void OnPreviewKeyDown(object sender, KeyRoutedEventArgs e)
|
||||
{
|
||||
if (e.KeyStatus.RepeatCount > 1 || ShouldIgnoreShortcut())
|
||||
|
||||
Reference in New Issue
Block a user