code: def gcall(func, *args, **kwargs):
      
      def idle():
          with gdk.lock:
              return bool(func(*args, **kwargs))
      return gobject.idle_add(idle)
docs: Calls a function, with the given arguments inside Gtk's main loop.
      Example::
          gcall(lbl.set_text, "foo")
  
      If this call would be made in a thread there could be problems, using
      it inside Gtk's main loop makes it thread safe.