Windows modal key bubbling fix

This commit is contained in:
2022-05-24 09:50:34 +02:00
parent 60ab7f94ea
commit b2db3675e8
2 changed files with 10 additions and 3 deletions

View File

@@ -1,7 +1,9 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using FileTime.App.Core.UserCommand;
using DynamicData;
using FileTime.App.Core.Services;
using FileTime.App.Core.ViewModels;
using FileTime.Core.Models;
using FileTime.GuiApp.Models;
using FileTime.GuiApp.ViewModels;
@@ -13,6 +15,8 @@ namespace FileTime.GuiApp.Views;
public partial class MainWindow : Window
{
private readonly ILogger<MainWindow>? _logger;
private readonly IModalService _modalService;
private IReadOnlyCollection<IModalViewModelBase>? _openModals;
public MainWindowViewModel? ViewModel
{
@@ -30,6 +34,8 @@ public partial class MainWindow : Window
{
_logger = DI.ServiceProvider.GetService<ILogger<MainWindow>>();
_logger?.LogInformation($"Starting {nameof(MainWindow)} initialization...");
_modalService = DI.ServiceProvider.GetRequiredService<IModalService>();
_modalService.OpenModals.ToCollection().Subscribe(m => _openModals = m);
InitializeComponent();
}
@@ -45,6 +51,7 @@ public partial class MainWindow : Window
private void OnKeyDown(object sender, KeyEventArgs e)
{
if ((_openModals?.Count ?? 0) > 0) return;
ViewModel?.ProcessKeyDown(e.Key, e.KeyModifiers, h => e.Handled = h);
}