From f8f23f48c89016590102f84f61eb819ba575c454 Mon Sep 17 00:00:00 2001 From: Shane Neuville Date: Wed, 15 Jun 2022 12:05:53 -0500 Subject: [PATCH] Don't tie toolbar to backbutton on windows (#7932) --- src/Controls/src/Core/ShellToolbar.cs | 3 +-- .../Elements/Shell/ShellTests.Windows.cs | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Controls/src/Core/ShellToolbar.cs b/src/Controls/src/Core/ShellToolbar.cs index aa2aa49b5d92..84af6e3fffee 100644 --- a/src/Controls/src/Core/ShellToolbar.cs +++ b/src/Controls/src/Core/ShellToolbar.cs @@ -113,8 +113,7 @@ internal void ApplyChanges() { var flyoutBehavior = (_shell as IFlyoutView).FlyoutBehavior; #if WINDOWS - IsVisible = (BackButtonVisible || - !String.IsNullOrEmpty(Title) || + IsVisible = (!String.IsNullOrEmpty(Title) || TitleView != null || _toolbarTracker.ToolbarItems.Count > 0 || _menuBarTracker.ToolbarItems.Count > 0 || diff --git a/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs b/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs index 677268d1faaa..1dc3dd5c945c 100644 --- a/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs +++ b/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs @@ -437,5 +437,25 @@ await CreateHandlerAndAddToWindow(shell, (handler) => return Task.CompletedTask; }); } + + + // this is only relevant on windows where the title/backbutton aren't in the same + // area + [Fact(DisplayName = "Shell Toolbar not visible when only back button is present")] + public async Task ShellToolbarNotVisibleWhenOnlyBackButtonIsPresent() + { + SetupBuilder(); + + var shell = await CreateShellAsync((shell) => + { + shell.CurrentItem = new ContentPage(); + }); + + await CreateHandlerAndAddToWindow(shell, async (handler) => + { + await shell.Navigation.PushAsync(new ContentPage()); + Assert.False(IsNavigationBarVisible(handler)); + }); + } } }