diff --git a/toolbar/hermes_bridge.shelf b/toolbar/hermes_bridge.shelf index b2ad372..c93f503 100644 --- a/toolbar/hermes_bridge.shelf +++ b/toolbar/hermes_bridge.shelf @@ -129,6 +129,11 @@ class HermesBridgeWindow(QtWidgets.QWidget): f"on {self.hostname} (port {self.port}).") def _toggle(self): + # Defer to next event loop cycle — avoids re-entrancy + # issues with hou.hscript in signal handler context + QtCore.QTimer.singleShot(0, self._execute_toggle) + + def _execute_toggle(self): try: if bridge_is_open(self.port): hou.hscript(f"closeport {self.port}")