From ddfdbee340f425f4375bceb45bf430d02ee2890c Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sat, 27 Aug 2022 21:40:02 +0100 Subject: [PATCH] Linux - Fixed a couple small issues --- .../ProcessMonitor/ProcessMonitorService.cs | 4 ++-- .../Providers/Input/LinuxInputProvider.cs | 13 ++++++++++++- .../Panels/ProfileTree/TreeItemViewModel.cs | 6 ++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/Artemis.Core/Services/ProcessMonitor/ProcessMonitorService.cs b/src/Artemis.Core/Services/ProcessMonitor/ProcessMonitorService.cs index 959af2e55..e832df0b9 100644 --- a/src/Artemis.Core/Services/ProcessMonitor/ProcessMonitorService.cs +++ b/src/Artemis.Core/Services/ProcessMonitor/ProcessMonitorService.cs @@ -32,13 +32,13 @@ internal class ProcessMonitorService : IProcessMonitorService foreach (Process startedProcess in newProcesses.Except(_lastScannedProcesses, _comparer)) { ProcessStarted?.Invoke(this, new ProcessEventArgs(startedProcess)); - _logger.Verbose("Started Process: {startedProcess}", startedProcess.ProcessName); + //_logger.Verbose("Started Process: {startedProcess}", startedProcess.ProcessName); } foreach (Process stoppedProcess in _lastScannedProcesses.Except(newProcesses, _comparer)) { ProcessStopped?.Invoke(this, new ProcessEventArgs(stoppedProcess)); - _logger.Verbose("Stopped Process: {stoppedProcess}", stoppedProcess.ProcessName); + //_logger.Verbose("Stopped Process: {stoppedProcess}", stoppedProcess.ProcessName); } _lastScannedProcesses = newProcesses; diff --git a/src/Artemis.UI.Linux/Providers/Input/LinuxInputProvider.cs b/src/Artemis.UI.Linux/Providers/Input/LinuxInputProvider.cs index eca27fa2b..c903a1d84 100644 --- a/src/Artemis.UI.Linux/Providers/Input/LinuxInputProvider.cs +++ b/src/Artemis.UI.Linux/Providers/Input/LinuxInputProvider.cs @@ -112,7 +112,18 @@ public class LinuxInputProvider : InputProvider switch (args.Type) { case LinuxInputEventType.KEY: - bool isDown = args.Value != 0; + var key = (LinuxKeyboardKeyCodes)args.Code; + if (key == LinuxKeyboardKeyCodes.BTN_TOUCH || + (key >= LinuxKeyboardKeyCodes.BTN_TOOL_PEN && key <= LinuxKeyboardKeyCodes.BTN_TOOL_QUADTAP)) + { + //trackpad input, ignore. + return; + } + + //0 - up + //1 - down + //2 - repeat input + bool isDown = args.Value == 1; MouseButton button = InputUtilities.MouseButtonFromButtonCode((LinuxKeyboardKeyCodes) args.Code); //_logger.Verbose($"Mouse Button: {(LinuxKeyboardKeyCodes)args.Code} | Down: {isDown}"); diff --git a/src/Artemis.UI/Screens/ProfileEditor/Panels/ProfileTree/TreeItemViewModel.cs b/src/Artemis.UI/Screens/ProfileEditor/Panels/ProfileTree/TreeItemViewModel.cs index 1511bc16d..6ccaea894 100644 --- a/src/Artemis.UI/Screens/ProfileEditor/Panels/ProfileTree/TreeItemViewModel.cs +++ b/src/Artemis.UI/Screens/ProfileEditor/Panels/ProfileTree/TreeItemViewModel.cs @@ -287,6 +287,12 @@ public abstract class TreeItemViewModel : ActivatableViewModelBase } string[] formats = await Application.Current.Clipboard.GetFormatsAsync(); + //diogotr7: This can be null on Linux sometimes. I'm not sure why. + if (formats == null) + { + CanPaste = false; + return; + } CanPaste = formats.Contains(ProfileElementExtensions.ClipboardDataFormat); }