Skip to content

Commit c9f1c8d

Browse files
duburcqaYilingQiao
authored andcommitted
[BUG FIX] Fix video recording dialog when running viewer in thread. (Genesis-Embodied-AI#1547)
1 parent 444b46c commit c9f1c8d

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

genesis/ext/pyrender/viewer.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,14 +1045,22 @@ def _get_save_filename(self, file_exts):
10451045
"all": ("all files", "*"),
10461046
}
10471047
filetypes = [file_types[x] for x in file_exts]
1048+
save_dir = self.viewer_flags["save_directory"]
1049+
if save_dir is None:
1050+
save_dir = os.getcwd()
10481051
try:
1049-
save_dir = self.viewer_flags["save_directory"]
1050-
if save_dir is None:
1051-
save_dir = os.getcwd()
1052-
filename = filedialog.asksaveasfilename(
1053-
initialdir=save_dir, title="Select file save location", filetypes=filetypes
1052+
master = None
1053+
if self._run_in_thread:
1054+
master = Tk()
1055+
master.withdraw()
1056+
dialog = filedialog.SaveAs(
1057+
master=master, initialdir=save_dir, title="Select file save location", filetypes=filetypes
10541058
)
1059+
filename = dialog.show()
1060+
if self._run_in_thread:
1061+
master.destroy()
10551062
except Exception:
1063+
gs.logger.warning("Failed to open file save location dialog.")
10561064
return None
10571065

10581066
if not filename:

0 commit comments

Comments
 (0)