# HG changeset patch # User Goffi # Date 1696260241 -7200 # Node ID 3b627382e6811b97f6fcd1fd56d9b91e83fc74dd # Parent 232a723aae454da491ff2f278a4da456abf53ce2 core: support async methods and bridge diff -r 232a723aae45 -r 3b627382e681 libervia/desktop_kivy/core/cagou_main.py --- a/libervia/desktop_kivy/core/cagou_main.py Mon Oct 02 17:20:13 2023 +0200 +++ b/libervia/desktop_kivy/core/cagou_main.py Mon Oct 02 17:24:01 2023 +0200 @@ -17,6 +17,7 @@ # along with this program. If not, see . +import asyncio import os.path import glob import sys @@ -305,6 +306,9 @@ return def build(self): + # we connect async bridge here as we must have a running loop + self.host.a_bridge.bridge_connect() + Window.bind(on_keyboard=self.key_input) Window.bind(on_dropfile=self.on_dropfile) wid = LiberviaDesktopKivyRootWidget(Label(text=_("Loading please wait"))) @@ -418,10 +422,13 @@ sys.exit(3) else: log.debug(f"Loading {bridge_name} bridge") - super(LiberviaDesktopKivy, self).__init__(bridge_factory=bridge_module.bridge, - xmlui=xmlui, - check_options=quick_utils.check_options, - connect_bridge=False) + super(LiberviaDesktopKivy, self).__init__( + bridge_factory=bridge_module.bridge, + xmlui=xmlui, + check_options=quick_utils.check_options, + connect_bridge=False, + async_bridge_factory = bridge_module.AIOBridge + ) self._import_kv() self.app = LiberviaDesktopKivyApp() self.app.host = self @@ -528,7 +535,10 @@ def run(self): self.connect_bridge() self.app.bind(on_stop=self.onStop) - self.app.run() + loop = asyncio.get_event_loop() + loop.run_until_complete( + self.app.async_run("asyncio") + ) def onStop(self, obj): try: