bool TryToPickInCanvas(Vector2 mousePosition) { var localMouse = m_Canvas.WorldToLocal(mousePosition); if (!m_Canvas.ContainsPoint(localMouse)) { m_ParentTracker.Deactivate(); return(false); } var pickedElement = Panel.PickAllWithoutValidatingLayout(m_Canvas, mousePosition); // Don't allow selection of elements inside template instances. pickedElement = pickedElement.GetClosestElementPartOfCurrentDocument(); // Get Closest valid element. pickedElement = pickedElement.GetClosestElementThatIsValid(IsPickedElementValid); if (pickedElement == null) { m_ParentTracker.Deactivate(); return(false); } m_LastHoverElement = pickedElement; m_ParentTracker.Activate(pickedElement); return(true); }
bool TryToPickInCanvas(Vector2 mousePosition) { if (viewport == null) { return(false); } var localMouse = m_Canvas.WorldToLocal(mousePosition); if (!m_Canvas.ContainsPoint(localMouse)) { m_ParentTracker?.Deactivate(); m_PlacementIndicator?.Deactivate(); return(false); } var pickedElement = Panel.PickAllWithoutValidatingLayout(m_Canvas, mousePosition); // Don't allow selection of elements inside template instances or outside current active document. pickedElement = pickedElement.GetClosestElementPartOfCurrentDocument(); if (pickedElement != null && !pickedElement.IsPartOfActiveVisualTreeAsset(m_PaneWindow.document)) { pickedElement = null; } // Get Closest valid element. pickedElement = pickedElement.GetClosestElementThatIsValid(IsPickedElementValid); if (pickedElement == null) { m_ParentTracker?.Deactivate(); m_PlacementIndicator?.Deactivate(); m_LastHoverElement = null; return(false); } // The placement indicator might decide to change the parent. if (SupportsPlacementIndicator() && m_PlacementIndicator != null) { m_PlacementIndicator.Activate(pickedElement, mousePosition); pickedElement = m_PlacementIndicator.parentElement; } m_ParentTracker.Activate(pickedElement); m_LastHoverElement = pickedElement; if (SupportsPlacementIndicator() && m_PlacementIndicator != null) { m_LastHoverElementChildIndex = m_PlacementIndicator.indexWithinParent; } return(true); }
void EndDragInner() { EndDrag(); m_LastRowHoverElement?.RemoveFromClassList(s_TreeItemHoverHoverClassName); m_LastRowHoverElement?.RemoveFromClassList(s_TreeItemHoverWithDragBetweenElementsSupportClassName); m_DraggedElement.RemoveFromClassList(s_DraggedPreviewClassName); m_ParentTracker?.Deactivate(); }