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):
|
def _build_ui(self):
|
||||||
self.setWindowTitle("Hermes Bridge")
|
self.setWindowTitle("Hermes Bridge")
|
||||||
self.setMinimumWidth(420)
|
self.setMinimumWidth(420)
|
||||||
self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
|
self.setAttribute(QtCore.Qt.WA_DeleteOnClose, False)
|
||||||
|
|
||||||
# Dark theme
|
# Dark theme
|
||||||
self.setStyleSheet("""
|
self.setStyleSheet("""
|
||||||
@@ -162,9 +162,13 @@ class HermesBridgeDialog(QtWidgets.QDialog):
|
|||||||
QtCore.QTimer.singleShot(2000,
|
QtCore.QTimer.singleShot(2000,
|
||||||
lambda: self.btn_copy.setText("Copy"))
|
lambda: self.btn_copy.setText("Copy"))
|
||||||
|
|
||||||
# ── Show dialog ─────────────────────────────────────
|
# ── Show dialog (persist in hou.session per SideFX docs) ──
|
||||||
dialog = HermesBridgeDialog(hou.ui.mainQtWindow())
|
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.show()
|
||||||
|
dialog.raise_()
|
||||||
|
dialog.activateWindow()
|
||||||
]]></script>
|
]]></script>
|
||||||
</tool>
|
</tool>
|
||||||
</shelfDocument>
|
</shelfDocument>
|
||||||
|
|||||||
Reference in New Issue
Block a user