From 8b0b75f28f3d9c871a757c6f740629cdda09c857 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sun, 12 Jul 2026 13:50:30 +0000 Subject: [PATCH] fix: persist dialog in hou.session (prevents GC), remove StaysOnTop (Wayland issue), add raise/activateWindow --- toolbar/hermes_bridge.shelf | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/toolbar/hermes_bridge.shelf b/toolbar/hermes_bridge.shelf index f57fedb..464f0f8 100644 --- a/toolbar/hermes_bridge.shelf +++ b/toolbar/hermes_bridge.shelf @@ -43,7 +43,7 @@ class HermesBridgeDialog(QtWidgets.QDialog): def _build_ui(self): self.setWindowTitle("Hermes Bridge") self.setMinimumWidth(420) - self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint) + self.setAttribute(QtCore.Qt.WA_DeleteOnClose, False) # Dark theme self.setStyleSheet(""" @@ -162,9 +162,13 @@ class HermesBridgeDialog(QtWidgets.QDialog): QtCore.QTimer.singleShot(2000, lambda: self.btn_copy.setText("Copy")) -# ── Show dialog ───────────────────────────────────── -dialog = HermesBridgeDialog(hou.ui.mainQtWindow()) +# ── Show dialog (persist in hou.session per SideFX docs) ── +if not hasattr(hou.session, "hermes_bridge_dialog") or hou.session.hermes_bridge_dialog is None: + hou.session.hermes_bridge_dialog = HermesBridgeDialog(hou.ui.mainQtWindow()) +dialog = hou.session.hermes_bridge_dialog dialog.show() +dialog.raise_() +dialog.activateWindow() ]]>