From 9b8bc2e97752a03bb602d2c69ea5f17e57828930 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 23:42:28 -0700 Subject: [PATCH] Add right-click context menu to quest objective tracker Right-clicking a quest title in the HUD tracker shows options to open it in the Quest Log or toggle tracking (track/stop tracking). --- src/ui/game_screen.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 7f57e067..2ce44594 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -5410,13 +5410,33 @@ void GameScreen::renderQuestObjectiveTracker(game::GameHandler& gameHandler) { : ImVec4(1.0f, 1.0f, 0.85f, 1.0f); ImGui::PushStyleColor(ImGuiCol_Text, titleCol); if (ImGui::Selectable(q.title.c_str(), false, - ImGuiSelectableFlags_None, ImVec2(TRACKER_W - 12.0f, 0))) { + ImGuiSelectableFlags_DontClosePopups, ImVec2(TRACKER_W - 12.0f, 0))) { questLogScreen.openAndSelectQuest(q.questId); } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Click to open Quest Log"); + if (ImGui::IsItemHovered() && !ImGui::IsPopupOpen("##QTCtx")) { + ImGui::SetTooltip("Click: open Quest Log | Right-click: tracking options"); } ImGui::PopStyleColor(); + + // Right-click context menu for quest tracker entry + if (ImGui::BeginPopupContextItem("##QTCtx")) { + ImGui::TextDisabled("%s", q.title.c_str()); + ImGui::Separator(); + if (ImGui::MenuItem("Open in Quest Log")) { + questLogScreen.openAndSelectQuest(q.questId); + } + bool tracked = gameHandler.isQuestTracked(q.questId); + if (tracked) { + if (ImGui::MenuItem("Stop Tracking")) { + gameHandler.setQuestTracked(q.questId, false); + } + } else { + if (ImGui::MenuItem("Track")) { + gameHandler.setQuestTracked(q.questId, true); + } + } + ImGui::EndPopup(); + } ImGui::PopID(); // Objectives line (condensed)