docs: def on_release_event(self, event):
          " Update text position and redraw"
          element = self.element_from_artist[self.selected_patch]
          self.position[element] = [event.xdata, event.ydata]
          # Signal is a variable! therefore must be tested before
          if isinstance(element, bms.Signal):
              artists = self.artists_from_element[element]
              points = np.array((5, 2))
              xp, yp = self.position[element]
              points = np.array([[xp-1.5*self.l, yp-0.5*self.l], [xp-0.5*self.l, yp-0.5*self.l], [
                                xp, yp], [xp-0.5*self.l, yp+0.5*self.l], [xp-1.5*self.l, yp+0.5*self.l]])
              artists[0].set_xy(xy=points)
              artists[1].set(x=xp-1*self.l, y=yp)
              for artist in artists[3]:  # update out arrows
                  artist.set_positions((xp, yp), None)
  
          elif isinstance(element, bms.Variable):
              artists = self.artists_from_element[element]
              pos = self.position[element]
              artists[0].set(x=pos[0], y=pos[1])
              for artist in artists[2]:  # update in arrows
                  artist.set_positions(None, pos)
              for artist in artists[3]:  # update out arrows
                  artist.set_positions(pos, None)
  
          elif isinstance(element, bms.Block):
              artists = self.artists_from_element[element]
              pb = self.position[element][:]
              hb = 0.5*(1+max(len(element.inputs), len(element.outputs)))*self.l
              artists[0].set(xy=(pb[0]-0.5*self.l, pb[1]-hb/2))
              artists[1].set(x=pb[0], y=pb[1])
              li = len(element.inputs)
  #            lo=len(element.outputs)
              for i in range(2, li+2):
                  artists[i].set_positions(
                      None, (pb[0]-0.5*self.l, pb[1]+hb/2-0.5*(i+1-2)*self.l))
              for i in range(2+li, len(artists)):
                  artists[i].set_positions(
                      (pb[0]+0.5*self.l, pb[1]+hb/2-0.5*(i+1-2-li)*self.l), None)
  
          plt.draw()
          return True