code: def selectShapePoint(self, point):
          
          self.deSelectShape()
          if self.selectedVertex():  # A vertex is marked for selection.
              index, shape = self.hVertex, self.hShape
              shape.highlightVertex(index, shape.MOVE_VERTEX)
              self.selectShape(shape)
              return
          for shape in reversed(self.shapes):
              if self.isVisible(shape) and shape.containsPoint(point):
                  self.selectShape(shape)
                  self.calculateOffsets(shape, point)
                  return
docs: Select the first shape created which contains this point.