Changeset 8595


Ignore:
Timestamp:
Feb 4, 2020, 11:40:53 AM (2 years ago)
Author:
kopal
Message:

WorkspaceManager:

  • fixed bug, which occured when moving non-selected items
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/View/Visuals/EditorVisual.xaml.cs

    r8365 r8595  
    19051905        void WindowPreviewMouseMove(object sender, MouseEventArgs e)
    19061906        {
    1907             if (!_usagePopup.IsOpen)
    1908             {
    1909                 if (startDragPoint != null && e.LeftButton == MouseButtonState.Pressed)
    1910                 {
    1911                     startedSelection = true;
    1912                     Point currentPoint = Util.MouseUtilities.CorrectGetPosition(panel);
    1913                     Vector delta = Point.Subtract((Point)startDragPoint, currentPoint);
    1914                     delta.Negate();
    1915                     selectRectGeometry.Rect = new Rect((Point)startDragPoint, delta);
    1916                     selectionPath.Data = selectRectGeometry;
    1917 
    1918                     List<UIElement> items = new List<UIElement>();
    1919 
    1920                     foreach (var element in ComponentCollection)
    1921                     {
    1922                         Rect elementRect = new Rect(element.Position, new Size(element.ActualWidth, element.ActualHeight));
    1923                         if (selectRectGeometry.Rect.IntersectsWith(elementRect))
    1924                             items.Add(element);
    1925                         else
    1926                             items.Remove(element);
    1927                     }
    1928 
    1929                     foreach (var line in PathCollection)
    1930                     {
    1931                         foreach (var ft in line.Line.PointList)
     1907            try
     1908            {
     1909                if (!_usagePopup.IsOpen)
     1910                {
     1911                    if (startDragPoint != null && e.LeftButton == MouseButtonState.Pressed)
     1912                    {
     1913                        startedSelection = true;
     1914                        Point currentPoint = Util.MouseUtilities.CorrectGetPosition(panel);
     1915                        Vector delta = Point.Subtract((Point)startDragPoint, currentPoint);
     1916                        delta.Negate();
     1917                        selectRectGeometry.Rect = new Rect((Point)startDragPoint, delta);
     1918                        selectionPath.Data = selectRectGeometry;
     1919
     1920                        List<UIElement> items = new List<UIElement>();
     1921
     1922                        foreach (var element in ComponentCollection)
    19321923                        {
    1933                             Rect elementRect = new Rect(ft.From, ft.To);
     1924                            Rect elementRect = new Rect(element.Position, new Size(element.ActualWidth, element.ActualHeight));
    19341925                            if (selectRectGeometry.Rect.IntersectsWith(elementRect))
     1926                                items.Add(element);
     1927                            else
     1928                                items.Remove(element);
     1929                        }
     1930
     1931                        foreach (var line in PathCollection)
     1932                        {
     1933                            foreach (var ft in line.Line.PointList)
    19351934                            {
    1936                                 items.Add(line);
    1937                                 break;
     1935                                Rect elementRect = new Rect(ft.From, ft.To);
     1936                                if (selectRectGeometry.Rect.IntersectsWith(elementRect))
     1937                                {
     1938                                    items.Add(line);
     1939                                    break;
     1940                                }
     1941                                else
     1942                                    items.Remove(line);
    19381943                            }
    1939                             else
    1940                                 items.Remove(line);
    19411944                        }
    1942                     }
    1943 
    1944                     // if Control is pressed, add new items to selection, otherwise replace selection with new items
    1945                     if ((Keyboard.Modifiers & ModifierKeys.Control) != ModifierKeys.None)
    1946                         foreach (var x in SelectedItems)
    1947                             if (!items.Contains(x)) items.Add(x);
    1948 
    1949                     SelectedItems = items.ToArray();
    1950 
    1951                     return;
    1952                 }
     1945
     1946                        // if Control is pressed, add new items to selection, otherwise replace selection with new items
     1947                        if ((Keyboard.Modifiers & ModifierKeys.Control) != ModifierKeys.None)
     1948                            foreach (var x in SelectedItems)
     1949                                if (!items.Contains(x)) items.Add(x);
     1950
     1951                        SelectedItems = items.ToArray();
     1952
     1953                        return;
     1954                    }
     1955                }
     1956            }
     1957            catch (Exception)
     1958            {
     1959                //do nothing, in case there is nothing selected
    19531960            }
    19541961        }
Note: See TracChangeset for help on using the changeset viewer.