# HG changeset patch # User Laurent Bessard # Date 1343817803 -7200 # Node ID 99699ca6eda4c51f6065b615c75d90e150db9e51 # Parent eeac14463bcf8eccd4ef0f71e21edc1ea90669ad Fix block connection with wire problems diff -r eeac14463bcf -r 99699ca6eda4 Viewer.py --- a/Viewer.py Tue Jul 31 17:45:33 2012 +0200 +++ b/Viewer.py Wed Aug 01 12:43:23 2012 +0200 @@ -1666,8 +1666,11 @@ elif connector is None or self.SelectedElement.GetDragging(): self.DrawingWire = False rect = self.SelectedElement.GetRedrawRect() - self.SelectedElement.Delete() - self.SelectedElement = None + wire = self.SelectedElement + self.SelectedElement = self.SelectedElement.StartConnected.GetParentBlock() + self.SelectedElement.SetSelected(True) + rect.Union(self.SelectedElement.GetRedrawRect()) + wire.Delete() self.RefreshRect(self.GetScrolledRect(rect), False) else: if self.Debug: @@ -1704,7 +1707,7 @@ if self.SelectedElement is not None and self.SelectedElement != element: self.SelectedElement.SetSelected(False) self.SelectedElement = None - if element: + if element is not None: self.SelectedElement = element if self.Debug: Graphic_Element.OnRightDown(self.SelectedElement, event, self.GetLogicalDC(), self.Scaling) @@ -1731,7 +1734,17 @@ event.Skip() def OnViewerLeftDClick(self, event): - if self.Mode == MODE_SELECTION and self.SelectedElement is not None: + element = self.FindElement(event, connectors=False) + if self.Mode == MODE_SELECTION and element is not None: + if self.SelectedElement is not None and self.SelectedElement != element: + self.SelectedElement.SetSelected(False) + if self.HighlightedElement is not None and self.HighlightedElement != element: + self.HighlightedElement.SetHighlighted(False) + + self.SelectedElement = element + self.HighlightedElement = element + self.SelectedElement.SetHighlighted(True) + if self.Debug: if self.IsBlock(self.SelectedElement): instance_type = self.SelectedElement.GetType()