docs: def on_button_press(self, event):
          """Handle button press events.
  
          If the (mouse) button is pressed on top of a Handle (item.Handle), that handle is grabbed and can be
          dragged around.
          """
          if not event.get_button()[1] == 1:  # left mouse button
              return False
          view = self.view
  
          item, handle = HandleFinder(view.hovered_item, view).get_handle_at_point((event.x, event.y))
  
          # Handle must be the end handle of a connection
          if not handle or not isinstance(item, ConnectionView) or handle not in item.end_handles():
              return False
  
          if handle is item.from_handle():
              self._start_port_v = item.from_port
          else:
              self._start_port_v = item.to_port
  
          self._parent_state_v = item.parent
          self._end_handle = handle
          if isinstance(item, TransitionView):
              self._is_transition = True
          self._connection_v = item
  
          return True