fix: persist dialog in hou.session (prevents GC), remove StaysOnTop (Wayland issue), add raise/activateWindow

This commit is contained in:
Hermes
2026-07-12 13:50:30 +00:00
parent 6b4a4410d3
commit 8b0b75f28f
+7 -3
View File
@@ -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()
]]></script>
</tool>
</shelfDocument>