From e976b10e2a95133bb815e173e401b9e6018b8d27 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sat, 2 May 2026 15:22:11 -0600 Subject: [PATCH] UI: Avoid overlapping ImGui menu bar --- res/rml/popup.rcss | 1 - src/dusk/ui/popup.cpp | 17 +++++++++++++---- src/dusk/ui/popup.hpp | 1 + src/dusk/ui/prelaunch.cpp | 8 ++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/res/rml/popup.rcss b/res/rml/popup.rcss index 9a6ddbad42..effc80344d 100644 --- a/res/rml/popup.rcss +++ b/res/rml/popup.rcss @@ -23,7 +23,6 @@ popup { width: 100%; display: flex; align-items: stretch; - width: 100%; height: 64dp; background-color: rgba(21, 22, 16, 80%); border-bottom: 2dp #92875B; diff --git a/src/dusk/ui/popup.cpp b/src/dusk/ui/popup.cpp index 01754aa160..a0cd3c6868 100644 --- a/src/dusk/ui/popup.cpp +++ b/src/dusk/ui/popup.cpp @@ -3,15 +3,14 @@ #include #include "aurora/rmlui.hpp" +#include "dusk/main.h" #include "editor.hpp" +#include "imgui.h" #include "settings.hpp" #include "ui.hpp" #include "window.hpp" #include - -#include "dusk/main.h" - #include namespace dusk::ui { @@ -47,7 +46,9 @@ Popup::Popup() : Document(kDocumentSource), mRoot(mDocument->GetElementById("pop // Hide document after transition completion listen(mRoot, Rml::EventId::Transitionend, [this](Rml::Event& event) { - if (event.GetTargetElement() == mRoot && !mRoot->HasAttribute("open") && Document::visible()) { + if (event.GetTargetElement() == mRoot && !mRoot->HasAttribute("open") && + Document::visible()) + { Document::hide(mPendingClose); } }); @@ -79,6 +80,14 @@ void Popup::update_safe_area() noexcept { return; } + // Avoid ImGui menu bar if shown + if (const auto* viewport = ImGui::GetMainViewport(); + viewport != nullptr && mTopMargin != viewport->WorkPos.y) + { + mTopMargin = viewport->WorkPos.y; + mRoot->SetProperty(Rml::PropertyId::MarginTop, Rml::Property(mTopMargin, Rml::Unit::DP)); + } + Rml::Context* context = mDocument->GetContext(); Insets safeInsets = safe_area_insets(context); safeInsets = { diff --git a/src/dusk/ui/popup.hpp b/src/dusk/ui/popup.hpp index c3dc25e3c7..fdeed72a69 100644 --- a/src/dusk/ui/popup.hpp +++ b/src/dusk/ui/popup.hpp @@ -31,6 +31,7 @@ private: std::unique_ptr mTabBar; std::unique_ptr