Pārlūkot izejas kodu

dont raise events when window isnt shown.

Dan Walmsley 5 gadi atpakaļ
vecāks
revīzija
a23b4bd97f
1 mainītis faili ar 15 papildinājumiem un 0 dzēšanām
  1. 15 0
      src/Avalonia.Native/WindowImplBase.cs

+ 15 - 0
src/Avalonia.Native/WindowImplBase.cs

@@ -251,6 +251,11 @@ namespace Avalonia.Native
 
         public bool RawTextInputEvent(uint timeStamp, string text)
         {
+            if (_inputRoot is null)
+            {
+                return false;
+            }
+            
             Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
 
             var args = new RawTextInputEventArgs(_keyboard, timeStamp, _inputRoot, text);
@@ -262,6 +267,11 @@ namespace Avalonia.Native
 
         public bool RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key)
         {
+            if (_inputRoot is null)
+            {
+                return false;
+            }
+            
             Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
 
             var args = new RawKeyEventArgs(_keyboard, timeStamp, _inputRoot, (RawKeyEventType)type, (Key)key, (RawInputModifiers)modifiers);
@@ -278,6 +288,11 @@ namespace Avalonia.Native
 
         public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta)
         {
+            if (_inputRoot is null)
+            {
+                return;
+            }
+            
             Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
 
             switch (type)