docs: def handle(self, event):
          """
          Handle the event by calling each tool until the event is handled
          or grabbed.
          If a tool is returning True on a button press event, the motion and
          button release events are also passed to this
          """
          # Allow to handle a subset of events while having a grabbed tool (between a button press & release event)
          suppressed_grabbed_tool = None
          if event.type in (Gdk.EventType.SCROLL, Gdk.EventType.KEY_PRESS, Gdk.EventType.KEY_RELEASE):
              suppressed_grabbed_tool = self._grabbed_tool
              self._grabbed_tool = None
  
          rt = super(ToolChain, self).handle(event)
  
          if suppressed_grabbed_tool:
              self._grabbed_tool = suppressed_grabbed_tool
  
          return rt