From 67fd7983ace115224395ce4cac140bdc6e210eff Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Tue, 18 Mar 2025 19:17:48 -0700 Subject: [PATCH] Fixing callstack widget. --- src/gui/widgets/callstacks.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gui/widgets/callstacks.cc b/src/gui/widgets/callstacks.cc index 8fd8ffb06..ec715d2e5 100644 --- a/src/gui/widgets/callstacks.cc +++ b/src/gui/widgets/callstacks.cc @@ -65,29 +65,32 @@ void PCSX::Widgets::CallStacks::draw(const char* title, PCSX::GUI* gui) { ImGuiTreeNodeFlags flags = ImGuiTreeNodeFlags_Bullet | ImGuiTreeNodeFlags_DefaultOpen; if (isCurrent) flags |= ImGuiTreeNodeFlags_Selected; if (!ImGui::TreeNodeEx(label.c_str(), flags)) continue; + int callId = 0; for (auto& call : stack.calls) { - std::string label = fmt::format("0x{:08x}", call.ra); + ImGui::PushID(callId++); + std::string label = fmt::format("0x{:08x}##lowsp", call.ra); if (ImGui::Button(label.c_str())) { g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToPC{call.ra}); } ImGui::SameLine(); ImGui::TextUnformatted(" :: "); ImGui::SameLine(); - label = fmt::format("0x{:08x}", call.sp); + label = fmt::format("0x{:08x}##highsp", call.sp); if (ImGui::Button(label.c_str())) { g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{call.sp, 4}); } ImGui::SameLine(); ImGui::TextUnformatted(" :: "); ImGui::SameLine(); - label = fmt::format("0x{:08x}", call.fp); + label = fmt::format("0x{:08x}##frame", call.fp); if (ImGui::Button(label.c_str())) { g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{call.fp, 1}); } drawSymbol(call.ra); + ImGui::PopID(); } if (stack.ra != 0) { - std::string label = fmt::format("0x{:08x}", stack.ra); + std::string label = fmt::format("0x{:08x}##ralowsp", stack.ra); if (ImGui::Button(label.c_str())) { g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToPC{stack.ra}); } @@ -100,7 +103,7 @@ void PCSX::Widgets::CallStacks::draw(const char* title, PCSX::GUI* gui) { ImGui::SameLine(); ImGui::TextUnformatted(" :: "); ImGui::SameLine(); - label = fmt::format("0x{:08x}", stack.fp); + label = fmt::format("0x{:08x}##raframe", stack.fp); if (ImGui::Button(label.c_str())) { g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{stack.fp, 1}); }