Merge pull request #590 from MgAl2O4/fix-fileDialogImgui

fixed asserts on closing imgui file dialog
This commit is contained in:
goaaats 2021-09-28 00:35:42 +02:00 committed by GitHub
commit 886c088dec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -50,37 +50,40 @@ namespace Dalamud.Interface.ImGuiFileDialog
windowVisible = ImGui.Begin(name, ref this.visible, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoNav); windowVisible = ImGui.Begin(name, ref this.visible, ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoNav);
} }
bool wasClosed = false;
if (windowVisible) if (windowVisible)
{ {
if (!this.visible) if (!this.visible)
{ // window closed { // window closed
this.isOk = false; this.isOk = false;
return true; wasClosed = true;
} }
else
if (this.selectedFilter.Empty() && (this.filters.Count > 0))
{ {
this.selectedFilter = this.filters[0]; if (this.selectedFilter.Empty() && (this.filters.Count > 0))
}
if (this.files.Count == 0)
{
if (!string.IsNullOrEmpty(this.defaultFileName))
{ {
this.SetDefaultFileName(); this.selectedFilter = this.filters[0];
this.SetSelectedFilterWithExt(this.defaultExtension);
}
else if (this.IsDirectoryMode())
{
this.SetDefaultFileName();
} }
this.ScanDir(this.currentPath); if (this.files.Count == 0)
} {
if (!string.IsNullOrEmpty(this.defaultFileName))
{
this.SetDefaultFileName();
this.SetSelectedFilterWithExt(this.defaultExtension);
}
else if (this.IsDirectoryMode())
{
this.SetDefaultFileName();
}
this.DrawHeader(); this.ScanDir(this.currentPath);
this.DrawContent(); }
res = this.DrawFooter();
this.DrawHeader();
this.DrawContent();
res = this.DrawFooter();
}
if (this.isModal && !this.okResultToConfirm) if (this.isModal && !this.okResultToConfirm)
{ {
@ -93,7 +96,7 @@ namespace Dalamud.Interface.ImGuiFileDialog
ImGui.End(); ImGui.End();
} }
return this.ConfirmOrOpenOverWriteFileDialogIfNeeded(res); return wasClosed || this.ConfirmOrOpenOverWriteFileDialogIfNeeded(res);
} }
private static void AddToIconMap(string[] extensions, char icon, Vector4 color) private static void AddToIconMap(string[] extensions, char icon, Vector4 color)