Fix issue with tutorial window and double necessary click

This commit is contained in:
Ottermandias 2023-04-09 02:42:27 +02:00
parent bbfc9a0a6f
commit 4294b18bcb

View file

@ -14,16 +14,12 @@ public sealed class ImportPopup : Window
private readonly ModImportManager _modImportManager; private readonly ModImportManager _modImportManager;
public ImportPopup(ModImportManager modImportManager) public ImportPopup(ModImportManager modImportManager)
: base("Penumbra Import Status", : base("Penumbra Import Status",
ImGuiWindowFlags.Modal ImGuiWindowFlags.NoCollapse
| ImGuiWindowFlags.Popup
| ImGuiWindowFlags.NoCollapse
| ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.NoDecoration
| ImGuiWindowFlags.NoBackground | ImGuiWindowFlags.NoBackground
| ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoMove
| ImGuiWindowFlags.NoInputs | ImGuiWindowFlags.NoInputs, true)
| ImGuiWindowFlags.NoFocusOnAppearing
| ImGuiWindowFlags.NoBringToFrontOnFocus, true)
{ {
_modImportManager = modImportManager; _modImportManager = modImportManager;
IsOpen = true; IsOpen = true;
@ -40,7 +36,9 @@ public sealed class ImportPopup : Window
if (!_modImportManager.IsImporting(out var import)) if (!_modImportManager.IsImporting(out var import))
return; return;
ImGui.OpenPopup("##importPopup"); const string importPopup = "##importPopup";
if (!ImGui.IsPopupOpen(importPopup))
ImGui.OpenPopup(importPopup);
var display = ImGui.GetIO().DisplaySize; var display = ImGui.GetIO().DisplaySize;
var height = Math.Max(display.Y / 4, 15 * ImGui.GetFrameHeightWithSpacing()); var height = Math.Max(display.Y / 4, 15 * ImGui.GetFrameHeightWithSpacing());
@ -48,17 +46,17 @@ public sealed class ImportPopup : Window
var size = new Vector2(width * 2, height); var size = new Vector2(width * 2, height);
ImGui.SetNextWindowPos(ImGui.GetMainViewport().GetCenter(), ImGuiCond.Always, Vector2.One / 2); ImGui.SetNextWindowPos(ImGui.GetMainViewport().GetCenter(), ImGuiCond.Always, Vector2.One / 2);
ImGui.SetNextWindowSize(size); ImGui.SetNextWindowSize(size);
using var popup = ImRaii.Popup("##importPopup", ImGuiWindowFlags.Modal); using var popup = ImRaii.Popup(importPopup, ImGuiWindowFlags.Modal);
using (var child = ImRaii.Child("##import", new Vector2(-1, size.Y - ImGui.GetFrameHeight() * 2))) using (var child = ImRaii.Child("##import", new Vector2(-1, size.Y - ImGui.GetFrameHeight() * 2)))
{ {
if (child) if (child)
import.DrawProgressInfo(new Vector2(-1, ImGui.GetFrameHeight())); import.DrawProgressInfo(new Vector2(-1, ImGui.GetFrameHeight()));
} }
if ((import.State != ImporterState.Done || !ImGui.Button("Close", -Vector2.UnitX)) var terminate = import.State == ImporterState.Done
&& (import.State == ImporterState.Done || !import.DrawCancelButton(-Vector2.UnitX))) ? ImGui.Button("Close", -Vector2.UnitX)
return; : import.DrawCancelButton(-Vector2.UnitX);
if (terminate)
_modImportManager.ClearImport(); _modImportManager.ClearImport();
} }
} }