syncshell join modal to overlay, which doesnt prevent game interaction
This commit is contained in:
@@ -759,29 +759,22 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
||||
|
||||
var scale = ImGuiHelpers.GlobalScale;
|
||||
|
||||
// if not already open
|
||||
if (!ImGui.IsPopupOpen("JoinSyncshellModal"))
|
||||
ImGui.OpenPopup("JoinSyncshellModal");
|
||||
|
||||
Vector2 windowPos = ImGui.GetWindowPos();
|
||||
Vector2 windowSize = ImGui.GetWindowSize();
|
||||
float modalWidth = Math.Min(420f * scale, windowSize.X - 40f * scale);
|
||||
float modalHeight = 295f * scale;
|
||||
ImGui.SetNextWindowPos(new Vector2(
|
||||
windowPos.X + (windowSize.X - modalWidth) * 0.5f,
|
||||
windowPos.Y + (windowSize.Y - modalHeight) * 0.5f
|
||||
), ImGuiCond.Always);
|
||||
ImGui.SetNextWindowSize(new Vector2(modalWidth, modalHeight));
|
||||
ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 6f * ImGuiHelpers.GlobalScale);
|
||||
ImGui.PushStyleColor(ImGuiCol.Border, Vector4.Zero);
|
||||
Vector2 childPos = new Vector2(
|
||||
(windowSize.X - modalWidth) * 0.5f,
|
||||
(windowSize.Y - modalHeight) * 0.5f
|
||||
);
|
||||
ImGui.SetCursorPos(childPos);
|
||||
|
||||
using ImRaii.Color modalBorder = ImRaii.PushColor(ImGuiCol.Border, UIColors.Get("LightlessPurple").WithAlpha(0.5f));
|
||||
using ImRaii.Style rounding = ImRaii.PushStyle(ImGuiStyleVar.WindowRounding, 8f * scale);
|
||||
using ImRaii.Style borderSize = ImRaii.PushStyle(ImGuiStyleVar.WindowBorderSize, 2f * scale);
|
||||
using ImRaii.Style padding = ImRaii.PushStyle(ImGuiStyleVar.WindowPadding, new Vector2(16f * scale, 16f * scale));
|
||||
using var modalBorder = ImRaii.PushColor(ImGuiCol.Border, UIColors.Get("LightlessPurple").WithAlpha(0.5f));
|
||||
using var childBg = ImRaii.PushColor(ImGuiCol.ChildBg, ImGui.GetStyle().Colors[(int)ImGuiCol.WindowBg]);
|
||||
using var rounding = ImRaii.PushStyle(ImGuiStyleVar.ChildRounding, 8f * scale);
|
||||
using var borderSize = ImRaii.PushStyle(ImGuiStyleVar.ChildBorderSize, 2f * scale);
|
||||
using var padding = ImRaii.PushStyle(ImGuiStyleVar.WindowPadding, new Vector2(16f * scale, 16f * scale));
|
||||
|
||||
ImGuiWindowFlags flags = ImGuiWindowFlags.NoTitleBar | ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoScrollbar;
|
||||
if (ImGui.BeginPopupModal("JoinSyncshellModal", ref _joinModalOpen, flags))
|
||||
if (ImGui.BeginChild("JoinSyncshellOverlay", new Vector2(modalWidth, modalHeight), true, ImGuiWindowFlags.NoScrollbar))
|
||||
{
|
||||
float contentWidth = ImGui.GetContentRegionAvail().X;
|
||||
|
||||
@@ -843,7 +836,7 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
||||
|
||||
_joinDto = null;
|
||||
_joinInfo = null;
|
||||
ImGui.CloseCurrentPopup();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -858,20 +851,13 @@ public class LightFinderUI : WindowMediatorSubscriberBase
|
||||
{
|
||||
_joinDto = null;
|
||||
_joinInfo = null;
|
||||
ImGui.CloseCurrentPopup();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Handle modal close via the bool ref
|
||||
if (!_joinModalOpen)
|
||||
{
|
||||
_joinDto = null;
|
||||
_joinInfo = null;
|
||||
}
|
||||
|
||||
ImGui.EndPopup();
|
||||
}
|
||||
ImGui.EndChild();
|
||||
}
|
||||
|
||||
private void DrawPermissionToggleRow(string label, FontAwesomeIcon icon, bool suggested, bool current, Action<bool> apply, float contentWidth)
|
||||
|
||||
Reference in New Issue
Block a user