fix: persist dialog in hou.session (prevents GC), remove StaysOnTop (Wayland issue), add raise/activateWindow
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user