From 35623608accdd2a5056389877eb1beb8741c970a Mon Sep 17 00:00:00 2001 From: Fabian Gonzalez Date: Sun, 8 Nov 2026 22:09:27 -0500 Subject: [PATCH 1/2] update EndTooltip to safely close tooltip windows (fixes crash when closing mod menu) Signed-off-by: Fabian Gonzalez --- Source/OmegaGUI/UI/Window.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/OmegaGUI/UI/Window.cpp b/Source/OmegaGUI/UI/Window.cpp index 8267faf..1746e01 100644 --- a/Source/OmegaGUI/UI/Window.cpp +++ b/Source/OmegaGUI/UI/Window.cpp @@ -861,7 +861,9 @@ namespace OmegaGUI void EndTooltip() { - End(); + const stWindow* pWindow = CurrentWindow(); + if (pWindow && HasFlag(pWindow->eFlags, EWindowFlags::Tooltip)) + End(); } void SetTooltip(std::string_view strText) From 62b4a11f7459105b1b76e900b7d6b05e0f527e5f Mon Sep 17 00:00:00 2001 From: Fabian Gonzalez Date: Sun, 8 Nov 2026 23:10:04 -0500 Subject: [PATCH 2/2] safely open and set tooltips (similar to popup) with correct return Signed-off-by: Fabian Gonzalez --- Source/OmegaGUI/UI/Window.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Source/OmegaGUI/UI/Window.cpp b/Source/OmegaGUI/UI/Window.cpp index 1746e01..d00e112 100644 --- a/Source/OmegaGUI/UI/Window.cpp +++ b/Source/OmegaGUI/UI/Window.cpp @@ -856,7 +856,12 @@ namespace OmegaGUI const bool bOpen = Begin("##Tooltip", nullptr, EWindowFlags::Tooltip | EWindowFlags::NoTitleBar | EWindowFlags::AlwaysAutoResize | EWindowFlags::NoInputs | EWindowFlags::NoNav | EWindowFlags::NoSavedSettings | EWindowFlags::NoResize | EWindowFlags::NoMove | EWindowFlags::NoScrollbar); g.bTooltipRequested = true; - return bOpen; + if (!bOpen) + { + EndTooltip(); + return false; + } + return true; } void EndTooltip() @@ -868,15 +873,14 @@ namespace OmegaGUI void SetTooltip(std::string_view strText) { - if (BeginTooltip()) - { - stWindow* pWindow = CurrentWindow(); - const float flWrap = 320.f * Ctx().stSettings.flScale; - const vec2 vecSize = MeasureText(strText, flWrap); - const vec2 vecPosition = pWindow->Region().vecCursor; - ItemSize(vecSize); - pWindow->drawList.AddText(vecPosition, WithGlobalAlpha(Style().Get(EColor::Text)), strText, 0.f, flWrap); - } + if (!BeginTooltip()) + return; + stWindow* pWindow = CurrentWindow(); + const float flWrap = 320.f * Ctx().stSettings.flScale; + const vec2 vecSize = MeasureText(strText, flWrap); + const vec2 vecPosition = pWindow->Region().vecCursor; + ItemSize(vecSize); + pWindow->drawList.AddText(vecPosition, WithGlobalAlpha(Style().Get(EColor::Text)), strText, 0.f, flWrap); EndTooltip(); }