Browse Source

Merge branch 'master' into fixes/win32-consistent-minimize-restore-window-size

pull/8574/head
Dan Walmsley 4 years ago
committed by GitHub
parent
commit
baac337b29
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      native/Avalonia.Native/src/OSX/WindowImpl.mm
  2. 1
      samples/IntegrationTestApp/MainWindow.axaml.cs
  3. 3
      samples/IntegrationTestApp/ShowWindowTest.axaml
  4. 3
      tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
  5. 29
      tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs

2
native/Avalonia.Native/src/OSX/WindowImpl.mm

@ -121,7 +121,7 @@ void WindowImpl::BringToFront()
{ {
if(Window != nullptr) if(Window != nullptr)
{ {
if (![Window isMiniaturized]) if ([Window isVisible] && ![Window isMiniaturized])
{ {
if(IsDialog()) if(IsDialog())
{ {

1
samples/IntegrationTestApp/MainWindow.axaml.cs

@ -99,6 +99,7 @@ namespace IntegrationTestApp
foreach (var window in lifetime.Windows) foreach (var window in lifetime.Windows)
{ {
window.Show();
if (window.WindowState == WindowState.Minimized) if (window.WindowState == WindowState.Minimized)
window.WindowState = WindowState.Normal; window.WindowState = WindowState.Normal;
} }

3
samples/IntegrationTestApp/ShowWindowTest.axaml

@ -3,7 +3,7 @@
x:Class="IntegrationTestApp.ShowWindowTest" x:Class="IntegrationTestApp.ShowWindowTest"
Name="SecondaryWindow" Name="SecondaryWindow"
Title="Show Window Test"> Title="Show Window Test">
<Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto"> <Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
<Label Grid.Column="0" Grid.Row="1">Client Size</Label> <Label Grid.Column="0" Grid.Row="1">Client Size</Label>
<TextBox Name="ClientSize" Grid.Column="1" Grid.Row="1" IsReadOnly="True" <TextBox Name="ClientSize" Grid.Column="1" Grid.Row="1" IsReadOnly="True"
Text="{Binding ClientSize, Mode=OneWay}"/> Text="{Binding ClientSize, Mode=OneWay}"/>
@ -31,5 +31,6 @@
<ComboBoxItem>Maximized</ComboBoxItem> <ComboBoxItem>Maximized</ComboBoxItem>
<ComboBoxItem>Fullscreen</ComboBoxItem> <ComboBoxItem>Fullscreen</ComboBoxItem>
</ComboBox> </ComboBox>
<Button Name="HideButton" Grid.Row="8" Command="{Binding $parent[Window].Hide}">Hide</Button>
</Grid> </Grid>
</Window> </Window>

3
tests/Avalonia.IntegrationTests.Appium/WindowTests.cs

@ -131,7 +131,8 @@ namespace Avalonia.IntegrationTests.Appium
Assert.True(clientSize.Width >= current.ScreenRect.Width); Assert.True(clientSize.Width >= current.ScreenRect.Width);
Assert.True(clientSize.Height >= current.ScreenRect.Height); Assert.True(clientSize.Height >= current.ScreenRect.Height);
windowState.Click(); windowState.SendClick();
_session.FindElementByName("Normal").SendClick(); _session.FindElementByName("Normal").SendClick();
current = GetWindowInfo(); current = GetWindowInfo();

29
tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs

@ -211,6 +211,35 @@ namespace Avalonia.IntegrationTests.Appium
} }
} }
[PlatformFact(TestPlatforms.MacOS)]
public void Hidden_Child_Window_Is_Not_Reshown_When_Parent_Clicked()
{
var mainWindow = _session.FindElementByAccessibilityId("MainWindow");
// We don't use dispose to close the window here, because it seems that hiding and re-showing a window
// causes Appium to think it's a different window.
OpenWindow(null, ShowWindowMode.Owned, WindowStartupLocation.Manual);
var secondaryWindow = FindWindow(_session, "SecondaryWindow");
var hideButton = secondaryWindow.FindElementByAccessibilityId("HideButton");
hideButton.Click();
var windows = _session.FindElementsByXPath("XCUIElementTypeWindow");
Assert.Single(windows);
mainWindow.Click();
windows = _session.FindElementsByXPath("XCUIElementTypeWindow");
Assert.Single(windows);
_session.FindElementByAccessibilityId("RestoreAll").Click();
// Close the window manually.
secondaryWindow = FindWindow(_session, "SecondaryWindow");
secondaryWindow.GetChromeButtons().close.Click();
}
private IDisposable OpenWindow(PixelSize? size, ShowWindowMode mode, WindowStartupLocation location) private IDisposable OpenWindow(PixelSize? size, ShowWindowMode mode, WindowStartupLocation location)
{ {
var sizeTextBox = _session.FindElementByAccessibilityId("ShowWindowSize"); var sizeTextBox = _session.FindElementByAccessibilityId("ShowWindowSize");

Loading…
Cancel
Save