code: def set_geometry(self, crect):
          
          x0, y0, width, height = self.geometry()
  
          if width is None:
              width = crect.width()
          if height is None:
              height = crect.height()
  
          # Calculate editor coordinates with their offsets
          offset = self.editor.contentOffset()
          x = self.editor.blockBoundingGeometry(self.editor.firstVisibleBlock())\
              .translated(offset.x(), offset.y()).left() \
              + self.editor.document().documentMargin() \
              + self.editor.panels.margin_size(Panel.Position.LEFT)
          y = crect.top() + self.editor.panels.margin_size(Panel.Position.TOP)
  
          self.setGeometry(QRect(x+x0, y+y0, width, height))
docs: Set geometry for floating panels.
  
          Normally you don't need to override this method, you should override
          `geometry` instead.