private void HandleLeftButtonUp(IPointerEventArgs e) { if (m_Pointer != null) { ISpatialDocument doc = Scene?.Document; if (doc != null) { m_Hits.Clear(); Coordinate pos = Scene.ViewToWorld(m_Position); doc.HitTest(pos.X, pos.Y, 5, 1 / Scene.Scale, m_HitTestSpec, m_Hits); bool multi = e.KeyModifiers.HasFlag(KeyModifiers.Shift); if (m_Hits.Count == 1) { if (!multi) { doc.DeselectAll(); } var pair = m_Hits.First(); IItemsLayer layer = pair.Value; ISpatialItem item = pair.Key; if (layer.IsItemSelected(item)) { if (multi) { layer.DeselectItem(item); } } else { layer.SelectItem(item); } } else { doc.DeselectAll(); } } } }
public LayerSelectionChangedEventArgs(IItemsLayer layer) : base(layer) { }