Skip to content

Commit fddfff5

Browse files
authored
Merge pull request #1909 from nicolasnoble/callstacks-imgui-fix
Fixing callstack widget.
2 parents 34ea4f1 + d222c2d commit fddfff5

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/gui/widgets/callstacks.cc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,29 +65,32 @@ void PCSX::Widgets::CallStacks::draw(const char* title, PCSX::GUI* gui) {
6565
ImGuiTreeNodeFlags flags = ImGuiTreeNodeFlags_Bullet | ImGuiTreeNodeFlags_DefaultOpen;
6666
if (isCurrent) flags |= ImGuiTreeNodeFlags_Selected;
6767
if (!ImGui::TreeNodeEx(label.c_str(), flags)) continue;
68+
int callId = 0;
6869
for (auto& call : stack.calls) {
69-
std::string label = fmt::format("0x{:08x}", call.ra);
70+
ImGui::PushID(callId++);
71+
std::string label = fmt::format("0x{:08x}##lowsp", call.ra);
7072
if (ImGui::Button(label.c_str())) {
7173
g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToPC{call.ra});
7274
}
7375
ImGui::SameLine();
7476
ImGui::TextUnformatted(" :: ");
7577
ImGui::SameLine();
76-
label = fmt::format("0x{:08x}", call.sp);
78+
label = fmt::format("0x{:08x}##highsp", call.sp);
7779
if (ImGui::Button(label.c_str())) {
7880
g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{call.sp, 4});
7981
}
8082
ImGui::SameLine();
8183
ImGui::TextUnformatted(" :: ");
8284
ImGui::SameLine();
83-
label = fmt::format("0x{:08x}", call.fp);
85+
label = fmt::format("0x{:08x}##frame", call.fp);
8486
if (ImGui::Button(label.c_str())) {
8587
g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{call.fp, 1});
8688
}
8789
drawSymbol(call.ra);
90+
ImGui::PopID();
8891
}
8992
if (stack.ra != 0) {
90-
std::string label = fmt::format("0x{:08x}", stack.ra);
93+
std::string label = fmt::format("0x{:08x}##ralowsp", stack.ra);
9194
if (ImGui::Button(label.c_str())) {
9295
g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToPC{stack.ra});
9396
}
@@ -100,7 +103,7 @@ void PCSX::Widgets::CallStacks::draw(const char* title, PCSX::GUI* gui) {
100103
ImGui::SameLine();
101104
ImGui::TextUnformatted(" :: ");
102105
ImGui::SameLine();
103-
label = fmt::format("0x{:08x}", stack.fp);
106+
label = fmt::format("0x{:08x}##raframe", stack.fp);
104107
if (ImGui::Button(label.c_str())) {
105108
g_system->m_eventBus->signal(PCSX::Events::GUI::JumpToMemory{stack.fp, 1});
106109
}

0 commit comments

Comments
 (0)