mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-31 02:44:50 +01:00 
			
		
		
		
	Fix zindex in groups (#1660)
This commit is contained in:
		| @@ -10,6 +10,7 @@ import { | ||||
|   getElementsInGroup, | ||||
|   addToGroup, | ||||
|   removeFromSelectedGroups, | ||||
|   isElementInGroup, | ||||
| } from "../groups"; | ||||
| import { getNonDeletedElements } from "../element"; | ||||
|  | ||||
| @@ -58,13 +59,32 @@ export const actionGroup = register({ | ||||
|         ), | ||||
|       }); | ||||
|     }); | ||||
|     // keep the z order within the group the same, but move them | ||||
|     // to the z order of the highest element in the layer stack | ||||
|     const elementsInGroup = getElementsInGroup(updatedElements, newGroupId); | ||||
|     const lastElementInGroup = elementsInGroup[elementsInGroup.length - 1]; | ||||
|     const lastGroupElementIndex = updatedElements.lastIndexOf( | ||||
|       lastElementInGroup, | ||||
|     ); | ||||
|     const elementsAfterGroup = updatedElements.slice(lastGroupElementIndex + 1); | ||||
|     const elementsBeforeGroup = updatedElements | ||||
|       .slice(0, lastGroupElementIndex) | ||||
|       .filter( | ||||
|         (updatedElement) => !isElementInGroup(updatedElement, newGroupId), | ||||
|       ); | ||||
|     const updatedElementsInOrder = [ | ||||
|       ...elementsBeforeGroup, | ||||
|       ...elementsInGroup, | ||||
|       ...elementsAfterGroup, | ||||
|     ]; | ||||
|  | ||||
|     return { | ||||
|       appState: selectGroup( | ||||
|         newGroupId, | ||||
|         { ...appState, selectedGroupIds: {} }, | ||||
|         getNonDeletedElements(updatedElements), | ||||
|         getNonDeletedElements(updatedElementsInOrder), | ||||
|       ), | ||||
|       elements: updatedElements, | ||||
|       elements: updatedElementsInOrder, | ||||
|       commitToHistory: true, | ||||
|     }; | ||||
|   }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Pete Hunt
					Pete Hunt