docs: def wait_for_update(self, trigger_update=False):
          """Update canvas and handle all events in the gtk queue
  
          :param bool trigger_update: Whether to call update_now() or not
          """
          if trigger_update:
              self.update_now()
  
          from gi.repository import Gtk
          from gi.repository import GLib
          from threading import Event
          event = Event()
  
          # Handle all events from gaphas, but not from gtkmvc3
          # Make use of the priority, which is higher for gaphas then for gtkmvc3
          def priority_handled(event):
              event.set()
          priority = (GLib.PRIORITY_HIGH_IDLE + GLib.PRIORITY_DEFAULT_IDLE) / 2
          # idle_add is necessary here, as we do not want to block the user from interacting with the GUI
          # while gaphas is redrawing
          GLib.idle_add(priority_handled, event, priority=priority)
          while not event.is_set():
              Gtk.main_iteration()