This commit is contained in:
@@ -400,9 +400,11 @@ void StudioUI::drawTabs() noexcept {
|
|||||||
*m_sctx.navIdx == m_sctx.navStack.size() ||
|
*m_sctx.navIdx == m_sctx.navStack.size() ||
|
||||||
(*m_sctx.navIdx < m_sctx.navStack.size() &&
|
(*m_sctx.navIdx < m_sctx.navStack.size() &&
|
||||||
m_sctx.navStack[*m_sctx.navIdx].filePath != m_activeEditor->itemPath())) {
|
m_sctx.navStack[*m_sctx.navIdx].filePath != m_activeEditor->itemPath())) {
|
||||||
auto &navIdx = m_sctx.navIdx.emplace(m_sctx.navIdx.or_value(0u));
|
auto constexpr defaultVal =
|
||||||
m_sctx.navStack.resize(navIdx);
|
ox::MaxValue<ox::remove_reference_t<decltype(*m_sctx.navIdx)>>;
|
||||||
|
auto &navIdx = m_sctx.navIdx.emplace(m_sctx.navIdx.or_value(defaultVal));
|
||||||
++navIdx;
|
++navIdx;
|
||||||
|
m_sctx.navStack.resize(navIdx);
|
||||||
m_sctx.navStack.emplace_back(
|
m_sctx.navStack.emplace_back(
|
||||||
ox::String{m_activeEditor->itemPath()},
|
ox::String{m_activeEditor->itemPath()},
|
||||||
ox::String{});
|
ox::String{});
|
||||||
|
|||||||
@@ -15,12 +15,9 @@ void navigateTo(Context &ctx, ox::StringParam filePath, ox::StringParam navArgs)
|
|||||||
}
|
}
|
||||||
path = p;
|
path = p;
|
||||||
}
|
}
|
||||||
//if (
|
auto constexpr defaultVal =
|
||||||
// auto const [np, err] = ctx.navStack.back();
|
ox::MaxValue<ox::remove_reference_t<decltype(*ctx.navIdx)>>;
|
||||||
// !err && np->filePath == path && np->navArgs == navArgs.view()) {
|
ctx.navStack.resize(ctx.navIdx.or_value(defaultVal) + 1);
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
ctx.navStack.resize(ctx.navIdx.or_value(0) + 1);
|
|
||||||
ctx.navStack.emplace_back(ox::String{path}, ox::String{navArgs.view()});
|
ctx.navStack.emplace_back(ox::String{path}, ox::String{navArgs.view()});
|
||||||
try {
|
try {
|
||||||
ctx.navCallback(std::move(path), std::move(navArgs));
|
ctx.navCallback(std::move(path), std::move(navArgs));
|
||||||
@@ -35,7 +32,6 @@ void navigateBack(Context &ctx) noexcept {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto &navIdx = *ctx.navIdx;
|
auto &navIdx = *ctx.navIdx;
|
||||||
navIdx = ox::min(navIdx, ctx.navStack.size() - 1);
|
|
||||||
while (navIdx && navIdx < ctx.navStack.size()) {
|
while (navIdx && navIdx < ctx.navStack.size()) {
|
||||||
--navIdx;
|
--navIdx;
|
||||||
auto const &n = ctx.navStack[navIdx];
|
auto const &n = ctx.navStack[navIdx];
|
||||||
|
|||||||
Reference in New Issue
Block a user