Windows modal key bubbling fix
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user