|
@@ -635,7 +635,9 @@ namespace PixiEditor.Models.DataHolders
|
|
{
|
|
{
|
|
int newIndex = layerIndex;
|
|
int newIndex = layerIndex;
|
|
|
|
|
|
- if ((oldIndex - layerIndex == -1 && !above) || (oldIndex - layerIndex == 1 && above))
|
|
|
|
|
|
+ int diff = newIndex - oldIndex;
|
|
|
|
+
|
|
|
|
+ if (TriesToMoveAboveBelow(above, diff) || TriesToMoveBelowAbove(above, diff) || (above && newIndex < oldIndex) || (!above && newIndex > oldIndex))
|
|
{
|
|
{
|
|
newIndex += above ? 1 : -1;
|
|
newIndex += above ? 1 : -1;
|
|
}
|
|
}
|
|
@@ -643,6 +645,10 @@ namespace PixiEditor.Models.DataHolders
|
|
return Math.Clamp(newIndex, 0, Layers.Count - 1);
|
|
return Math.Clamp(newIndex, 0, Layers.Count - 1);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private bool TriesToMoveAboveBelow(bool above, int diff) => above && diff == -1;
|
|
|
|
+
|
|
|
|
+ private bool TriesToMoveBelowAbove(bool above, int diff) => !above && diff == 1;
|
|
|
|
+
|
|
private void MoveLayerInStructureProcess(object[] parameter)
|
|
private void MoveLayerInStructureProcess(object[] parameter)
|
|
{
|
|
{
|
|
Guid layer = (Guid)parameter[0];
|
|
Guid layer = (Guid)parameter[0];
|