diff --git a/src/olympic/studio/applib/src/studioui.cpp b/src/olympic/studio/applib/src/studioui.cpp index a8b8ee7c..461492d2 100644 --- a/src/olympic/studio/applib/src/studioui.cpp +++ b/src/olympic/studio/applib/src/studioui.cpp @@ -400,9 +400,11 @@ void StudioUI::drawTabs() noexcept { *m_sctx.navIdx == m_sctx.navStack.size() || (*m_sctx.navIdx < m_sctx.navStack.size() && m_sctx.navStack[*m_sctx.navIdx].filePath != m_activeEditor->itemPath())) { - auto &navIdx = m_sctx.navIdx.emplace(m_sctx.navIdx.or_value(0u)); - m_sctx.navStack.resize(navIdx); + auto constexpr defaultVal = + ox::MaxValue>; + auto &navIdx = m_sctx.navIdx.emplace(m_sctx.navIdx.or_value(defaultVal)); ++navIdx; + m_sctx.navStack.resize(navIdx); m_sctx.navStack.emplace_back( ox::String{m_activeEditor->itemPath()}, ox::String{}); diff --git a/src/olympic/studio/modlib/src/context.cpp b/src/olympic/studio/modlib/src/context.cpp index 5a9272b3..c41f7cca 100644 --- a/src/olympic/studio/modlib/src/context.cpp +++ b/src/olympic/studio/modlib/src/context.cpp @@ -15,12 +15,9 @@ void navigateTo(Context &ctx, ox::StringParam filePath, ox::StringParam navArgs) } path = p; } - //if ( - // auto const [np, err] = ctx.navStack.back(); - // !err && np->filePath == path && np->navArgs == navArgs.view()) { - // return; - //} - ctx.navStack.resize(ctx.navIdx.or_value(0) + 1); + auto constexpr defaultVal = + ox::MaxValue>; + ctx.navStack.resize(ctx.navIdx.or_value(defaultVal) + 1); ctx.navStack.emplace_back(ox::String{path}, ox::String{navArgs.view()}); try { ctx.navCallback(std::move(path), std::move(navArgs)); @@ -35,7 +32,6 @@ void navigateBack(Context &ctx) noexcept { return; } auto &navIdx = *ctx.navIdx; - navIdx = ox::min(navIdx, ctx.navStack.size() - 1); while (navIdx && navIdx < ctx.navStack.size()) { --navIdx; auto const &n = ctx.navStack[navIdx];