From a23b4bd97f851672214e19ce9e24582d5e18cf9c Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 22 Oct 2020 13:45:02 +0100 Subject: [PATCH 1/2] dont raise events when window isnt shown. --- src/Avalonia.Native/WindowImplBase.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 5d35c773d7..127fd9dde4 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/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) From f8eaca28e896462a6a5721a9be387385d85d2e51 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 22 Oct 2020 13:53:11 +0100 Subject: [PATCH 2/2] save some lines. --- src/Avalonia.Native/WindowImplBase.cs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 127fd9dde4..824f62aee5 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -251,10 +251,8 @@ namespace Avalonia.Native public bool RawTextInputEvent(uint timeStamp, string text) { - if (_inputRoot is null) - { + if (_inputRoot is null) return false; - } Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); @@ -267,10 +265,8 @@ namespace Avalonia.Native public bool RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key) { - if (_inputRoot is null) - { + if (_inputRoot is null) return false; - } Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); @@ -288,10 +284,8 @@ namespace Avalonia.Native public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { - if (_inputRoot is null) - { + if (_inputRoot is null) return; - } Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);