Browse Source

Merge pull request #759 from PixiEditor/fixes/18.02.25

Fixes/18.02.25
Krzysztof Krysiński 5 months ago
parent
commit
f05fd4f47a

+ 1 - 1
src/Directory.Build.props

@@ -1,7 +1,7 @@
 <Project>
     <PropertyGroup>
         <CodeAnalysisRuleSet>../Custom.ruleset</CodeAnalysisRuleSet>
-		    <AvaloniaVersion>11.2.3</AvaloniaVersion>
+		    <AvaloniaVersion>11.2.4</AvaloniaVersion>
     </PropertyGroup>
     <ItemGroup>
         <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />

+ 1 - 1
src/PixiDocks

@@ -1 +1 @@
-Subproject commit 17c222b262301f0f38687dfbb7545e58d880b9f3
+Subproject commit 261d8e70227a68d6bc76883af4d1f76b2e6f467d

+ 6 - 0
src/PixiEditor.ChangeableDocument/Changeables/Graph/FuncInputProperty.cs

@@ -20,6 +20,11 @@ public class FuncInputProperty<T> : InputProperty<Func<FuncContext, T>>, IFuncIn
         NonOverridenValue = _ => constantNonOverrideValue;
     }
 
+    protected override void NonOverridenValueSet(Func<FuncContext, T> value)
+    {
+        constantNonOverrideValue = value(FuncContext.NoContext);
+    }
+
     protected internal override object FuncFactory(object toReturn)
     {
         Func<FuncContext, T> func = _ =>
@@ -133,6 +138,7 @@ public class FuncInputProperty<T> : InputProperty<Func<FuncContext, T>>, IFuncIn
         if (constantNonOverrideValue is ShaderExpressionVariable shaderExpressionVariable)
         {
             shaderExpressionVariable.SetConstantValue(value, ConversionTable.Convert);
+            NonOverridenValue = _ => constantNonOverrideValue;
             return;
         }
 

+ 21 - 1
src/PixiEditor.ChangeableDocument/Changeables/Graph/InputProperty.cs

@@ -51,6 +51,7 @@ public class InputProperty : IInputProperty
         set
         {
             _internalValue = value;
+            NonOverridenValueSet(value);
         }
     }
 
@@ -121,6 +122,10 @@ public class InputProperty : IInputProperty
         }
     }
 
+    protected virtual void NonOverridenValueSet(object value)
+    {
+    }
+
     internal virtual void UpdateCache()
     {
         if (Value is null)
@@ -199,7 +204,22 @@ public class InputProperty<T> : InputProperty, IInputProperty<T>
     public T NonOverridenValue
     {
         get => (T)(base.NonOverridenValue ?? default(T));
-        set => base.NonOverridenValue = value;
+        set
+        {
+            base.NonOverridenValue = value;
+        }
+    }
+
+    protected override void NonOverridenValueSet(object value)
+    {
+        if (value is T casted)
+        {
+            NonOverridenValueSet(casted);
+        }
+    }
+
+    protected virtual void NonOverridenValueSet(T value)
+    {
     }
 
     internal InputProperty(Node node, string internalName, string displayName, T defaultValue) : base(node,

+ 2 - 1
src/PixiEditor/Models/DocumentModels/DocumentUpdater.cs

@@ -14,6 +14,7 @@ using PixiEditor.ChangeableDocument.ChangeInfos.Root.ReferenceLayerChangeInfos;
 using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 using PixiEditor.ChangeableDocument.Enums;
 using Drawie.Backend.Core;
+using Drawie.Backend.Core.Shaders.Generation;
 using PixiEditor.Helpers;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.DocumentModels.Public;
@@ -579,7 +580,7 @@ internal class DocumentUpdater
             prop.PropertyName = input.PropertyName;
             prop.IsInput = isInput;
             prop.IsFunc = input.ValueType.IsAssignableTo(typeof(Delegate));
-            prop.InternalSetValue(input.InputValue);
+            prop.InternalSetValue(prop.IsFunc ? (input.InputValue as ShaderExpressionVariable)?.GetConstant() : input.InputValue);
             inputs.Add(prop);
         }
 

+ 1 - 1
src/PixiEditor/PixiEditor.csproj

@@ -89,7 +89,7 @@
     <PackageReference Include="Avalonia.Labs.Lottie" Version="11.2.0"/>
     <PackageReference Include="Avalonia.Themes.Fluent" Version="$(AvaloniaVersion)"/>
     <PackageReference Include="Avalonia.Skia" Version="$(AvaloniaVersion)"/>
-    <PackageReference Include="Avalonia.Svg.Skia" Version="11.2.0"/>
+    <PackageReference Include="Avalonia.Svg.Skia" Version="11.2.0.2"/>
     <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
     <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)"/>
     <PackageReference Include="ByteSize" Version="2.1.2"/>

+ 8 - 0
src/PixiEditor/ViewModels/SubViewModels/ClipboardViewModel.cs

@@ -305,6 +305,8 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
             return;
 
         await ClipboardController.CopyToClipboard(doc);
+
+        hasImageInClipboard = true;
     }
 
     [Command.Basic("PixiEditor.Clipboard.CopyVisible", "COPY_VISIBLE", "COPY_VISIBLE_DESCRIPTIVE",
@@ -318,6 +320,8 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
             return;
 
         await ClipboardController.CopyVisibleToClipboard(doc);
+
+        hasImageInClipboard = true;
     }
 
     [Command.Basic("PixiEditor.Clipboard.CopyNodes", "COPY_NODES", "COPY_NODES_DESCRIPTIVE",
@@ -336,6 +340,8 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
             return;
 
         await ClipboardController.CopyNodes(selectedNodes);
+
+        areNodesInClipboard = true;
     }
 
     [Command.Basic("PixiEditor.Clipboard.CopyCels", "COPY_CELS",
@@ -353,6 +359,8 @@ internal class ClipboardViewModel : SubViewModel<ViewModelMain>
             return;
 
         await ClipboardController.CopyCels(selectedCels);
+
+        areCelsInClipboard = true;
     }
 
 

+ 1 - 1
src/PixiEditor/Views/Dialogs/DialogTitleBar.axaml

@@ -23,7 +23,7 @@
         <DockPanel IsHitTestVisible="True">
             <CaptionButtons Name="captionButtons" DockPanel.Dock="Right" IsVisible="{OnPlatform macOS=false, Default=true}"/>
             <ContentPresenter DockPanel.Dock="Right" IsVisible="{Binding !!AdditionalElement}" Content="{Binding Path=AdditionalElement}"/>
-            <Panel Background="Transparent" IsHitTestVisible="True" /><!-- dummy control to occupy dockpanel center -->
+            <Panel Background="{OnPlatform Default={x:Null}, Linux=Transparent}" IsHitTestVisible="True" /><!-- dummy control to occupy dockpanel center -->
         </DockPanel>
     </Grid>
 </UserControl>

+ 1 - 1
tests/Directory.Build.props

@@ -1,7 +1,7 @@
 <Project>
     <PropertyGroup>
         <CodeAnalysisRuleSet>../Custom.ruleset</CodeAnalysisRuleSet>
-		<AvaloniaVersion>11.2.3</AvaloniaVersion>
+		<AvaloniaVersion>11.2.4</AvaloniaVersion>
     </PropertyGroup>
     <ItemGroup>
         <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />