Apply local fixes on top of upstream: tracker desync/drag/title, map icon zoom offset
- Compat/HBD.lua: fix world map pin offset math to account for zoom addons (e.g. Magnify) rescaling an ancestor frame instead of WorldMapButton itself; cull pins that fall outside the scroll frame's viewport when zoomed - Compat/Compat.lua: add a short TTL to the chat-parsed objective progress cache so a stale entry can't be reapplied to an unrelated quest - Modules/QuestieLearner.lua: re-point QuestiePlayer.currentQuestlog at the rebuilt quest table after invalidating QuestieDB's quest cache, fixing Tracker freezing on stale objective progress - Modules/Tracker/QuestieTracker.lua: fall back to a formatted quest name when QuestieDB has no title for a quest (e.g. custom server quests) - Modules/Tracker/TrackerBaseFrame.lua: force baseFrame movability on drag start instead of trusting the async-refreshed IsMovable() state - Modules/Tracker/TrackerHeaderFrame.lua: wire up drag on the tracker icon - Modules/Quest/QuestEventHandler.lua: force a full quest log reconciliation when the native quest log is opened Squashed from prior commit-by-commit history to rebuild this working copy on a clean fork of aron-w/Questie-X (restores the native GitHub fork link). Per-fix rationale is preserved in project memory (project_tracker_fixes.md, project_map_icon_offset.md).
This commit is contained in:
@@ -104,6 +104,21 @@ function QuestEventHandler:RegisterEvents()
|
||||
end)
|
||||
end
|
||||
|
||||
-- Force a full reconciliation whenever the player opens the native quest log.
|
||||
-- QuestLogCache only updates its stored objective counts when it detects a change, so if a
|
||||
-- scan ever ran while the game's own quest log text was still lagging behind the server, the
|
||||
-- Tracker can get stuck showing stale progress with nothing left to trigger a retry. Looking
|
||||
-- at the quest log is the moment the player is most likely to notice the mismatch, so treat it
|
||||
-- as a cue to force a fresh comparison against the live quest log state.
|
||||
local questLogFrame = QuestLogExFrame or ClassicQuestLog or QuestLogFrame
|
||||
if questLogFrame then
|
||||
questLogFrame:HookScript("OnShow", function()
|
||||
Questie:Debug(Questie.DEBUG_DEVELOP, "[Quest Event] Quest log opened: forcing full quest log scan")
|
||||
doFullQuestLogScan = true
|
||||
_QuestEventHandler:QuestLogUpdate()
|
||||
end)
|
||||
end
|
||||
|
||||
-- StaticPopup dialog hooks. Deleteing Quest items do not always trigger a Quest Log Update.
|
||||
hooksecurefunc("StaticPopup_Show", function(...)
|
||||
-- Hook StaticPopup_Show. If we find the "DELETE_ITEM" dialog, check for Quest Items and notify the player.
|
||||
|
||||
Reference in New Issue
Block a user