Selaa lähdekoodia

WIP: native linux
Clipboard broken

cpkreu 1 vuosi sitten
vanhempi
commit
7c10ff7e5c

+ 5 - 0
src/PixiEditor.Desktop/Program.cs

@@ -21,6 +21,11 @@ public class Program
                 RenderingMode = new Win32RenderingMode[] { Win32RenderingMode.Wgl, Win32RenderingMode.AngleEgl },
                 OverlayPopups = true
             })
+            .With(new X11PlatformOptions()
+            {
+                RenderingMode = [ X11RenderingMode.Egl ],
+                OverlayPopups = true
+            })
            
             .LogToTrace();
 }

+ 9 - 3
src/PixiEditor.Linux/LinuxOperatingSystem.cs

@@ -1,4 +1,5 @@
 using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Input;
 using Avalonia.Threading;
 using PixiEditor.OperatingSystem;
 
@@ -7,21 +8,26 @@ namespace PixiEditor.Linux;
 public sealed class LinuxOperatingSystem : IOperatingSystem
 {
     public string Name { get; } = "Linux";
-    public IInputKeys InputKeys { get; }
+    public IInputKeys InputKeys { get; } = new LinuxInputKeys();
     public IProcessUtility ProcessUtility { get; }
     
     public void OpenUri(string uri)
     {
-        throw new NotImplementedException();
+        return;
     }
 
     public void OpenFolder(string path)
     {
-        throw new NotImplementedException();
+        return;
     }
 
     public bool HandleNewInstance(Dispatcher? dispatcher, Action<string> openInExistingAction, IApplicationLifetime lifetime)
     {
         return true;
     }
+
+    class LinuxInputKeys : IInputKeys
+    {
+        public string GetKeyboardKey(Key key, bool forceInvariant = false) => $"{key}";
+    }
 }

+ 5 - 2
src/PixiEditor/ViewModels/SubViewModels/ClipboardViewModel.cs

@@ -149,25 +149,28 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
     [Evaluator.CanExecute("PixiEditor.Clipboard.CanPaste")]
     public bool CanPaste(object parameter)
     {
+        return false;
         return Owner.DocumentIsNotNull(null) && parameter is IDataObject data ? ClipboardController.IsImage(data) : ClipboardController.IsImageInClipboard().Result;
     }
 
     [Evaluator.CanExecute("PixiEditor.Clipboard.CanPasteColor")]
-    public static async Task<bool> CanPasteColor() => ColorHelper.ParseAnyFormat((await ClipboardController.Clipboard.GetTextAsync())?.Trim() ?? string.Empty, out _);
+    public static async Task<bool> CanPasteColor() => false; // ColorHelper.ParseAnyFormat((await ClipboardController.Clipboard.GetTextAsync())?.Trim() ?? string.Empty, out _);
 
     [Evaluator.Icon("PixiEditor.Clipboard.PasteColorIcon")]
     public static async Task<IImage> GetPasteColorIcon()
     {
+        return ColorSearchResult.GetIcon(new DrawingApi.Core.ColorsImpl.Color(255, 0, 255, 255));
         Color color;
 
         color = ColorHelper.ParseAnyFormat((await ClipboardController.Clipboard.GetTextAsync())?.Trim() ?? string.Empty, out var result) ? result.Value.ToOpaqueMediaColor() : Colors.Transparent;
 
-        return ColorSearchResult.GetIcon(color.ToOpaqueColor());
+        
     }
 
     [Evaluator.Icon("PixiEditor.Clipboard.CopyColorIcon")]
     public IImage GetCopyColorIcon(object data)
     {
+        return ColorSearchResult.GetIcon(new DrawingApi.Core.ColorsImpl.Color(255, 0, 255, 255));
         if (data is CopyColor color)
         {
         }