Переглянути джерело

AvaloniaKeyboardDriver: Swallow TextInput events to avoid bell (#4320)

merry 3 роки тому
батько
коміт
32a1cd83fd
1 змінених файлів з 8 додано та 0 видалено
  1. 8 0
      Ryujinx.Ava/Input/AvaloniaKeyboardDriver.cs

+ 8 - 0
Ryujinx.Ava/Input/AvaloniaKeyboardDriver.cs

@@ -1,5 +1,6 @@
 using Avalonia.Controls;
 using Avalonia.Input;
+using Avalonia.Interactivity;
 using Ryujinx.Ava.Common.Locale;
 using Ryujinx.Input;
 using System;
@@ -30,6 +31,7 @@ namespace Ryujinx.Ava.Input
             _control.KeyDown   += OnKeyPress;
             _control.KeyUp     += OnKeyRelease;
             _control.TextInput += Control_TextInput;
+            _control.AddHandler(InputElement.TextInputEvent, Control_LastChanceTextInput, RoutingStrategies.Bubble);
         }
 
         private void Control_TextInput(object sender, TextInputEventArgs e)
@@ -37,6 +39,12 @@ namespace Ryujinx.Ava.Input
             TextInput?.Invoke(this, e.Text);
         }
 
+        private void Control_LastChanceTextInput(object sender, TextInputEventArgs e)
+        {
+            // Swallow event
+            e.Handled = true;
+        }
+
         public event Action<string> OnGamepadConnected
         {
             add    { }