Skip to content

Commit 3fa69b1

Browse files
author
David M. Fritz
committed
fix: [22091] Fixed PopupFlyoutBase.Opening not passing CancelEventArgs
1 parent b709c58 commit 3fa69b1

3 files changed

Lines changed: 5 additions & 12 deletions

File tree

samples/ControlCatalog/Pages/ContextFlyoutPage.xaml.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,9 @@ private void ContextFlyoutPage_Closing(object? sender, CancelEventArgs e)
3232
e.Cancel = CancelCloseCheckBox?.IsChecked ?? false;
3333
}
3434

35-
private void ContextFlyoutPage_Opening(object? sender, EventArgs e)
35+
private void ContextFlyoutPage_Opening(object? sender, CancelEventArgs e)
3636
{
37-
if (e is CancelEventArgs cancelArgs)
38-
{
39-
cancelArgs.Cancel = CancelCloseCheckBox?.IsChecked ?? false;
40-
}
37+
e.Cancel = CancelCloseCheckBox?.IsChecked ?? false;
4138
}
4239

4340
private void CloseFlyout(object? sender, RoutedEventArgs e)

src/Avalonia.Controls/Flyouts/PopupFlyoutBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ event Action<IPopupHost?>? IPopupHostProvider.PopupHostChanged
178178
}
179179

180180
public event EventHandler<CancelEventArgs>? Closing;
181-
public event EventHandler? Opening;
181+
public event EventHandler<CancelEventArgs>? Opening;
182182

183183
/// <summary>
184184
/// Pre-registers a control as the default placement target for this flyout.

tests/Avalonia.Controls.UnitTests/FlyoutTests.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,7 @@ public void Opening_Is_Cancellable()
7777
f.Opening += (s, e) =>
7878
{
7979
tracker++;
80-
if (e is CancelEventArgs cancelEventArgs)
81-
{
82-
cancelEventArgs.Cancel = true;
83-
}
80+
e.Cancel = true;
8481
};
8582
f.ShowAt(window);
8683

@@ -834,8 +831,7 @@ public void IsOpen_SetTrue_Cancelled_Opening_Reverts_To_False()
834831

835832
flyout.Opening += (s, e) =>
836833
{
837-
if (e is CancelEventArgs cancelArgs)
838-
cancelArgs.Cancel = true;
834+
e.Cancel = true;
839835
};
840836

841837
flyout.IsOpen = true;

0 commit comments

Comments
 (0)