diff WorldQuests.lua @ 54:b289eb3e6a32

- Fix stray pin text arising from pins that are never shown.
author Nenue
date Sat, 31 Dec 2016 17:31:39 -0500
parents 6439015d74b1
children 6a2e85836219
line wrap: on
line diff
--- a/WorldQuests.lua	Fri Dec 30 20:43:58 2016 -0500
+++ b/WorldQuests.lua	Sat Dec 31 17:31:39 2016 -0500
@@ -132,8 +132,12 @@
   self:RegisterEvent('SKILL_LINES_CHANGED')
 end
 
-function Module:OnMapInfo()
+function Module:OnMapInfo(isBrokenIsle, isContinent, mapAreaID)
   print('|cFFFFFF00'..self:GetName()..':OnMapInfo()|r visible =', self:IsVisible())
+  if self.isContinent ~= isContinent then
+    self.sizesDirty = true
+  end
+  self.isContinent = isContinent
   if self:IsVisible() then
     self:Refresh(true)
   else
@@ -221,9 +225,10 @@
 
   if not pin.dataLoaded then
     pin:GetData()
-    C_TaskQuest.RequestPreloadRewardData(info.questId)
   end
 
+
+
   pin:IsFiltered()
   pin:IsShowable()
   pin.isStale = true
@@ -245,8 +250,8 @@
     end
     db.TasksByID[id] = nil
   end
-  pin:SetShown(false)
-  pin:ClearAllPoints()
+  pin:Hide()
+  pin.Overlay:Hide()
   tinsert(db.FreePins, pin)
 
   print('|cFF00FF00-'.. (pin.mapID and GetMapNameByID(pin.mapID) or '???') ..'|r', id, pin.title)
@@ -419,7 +424,6 @@
 end
 
 function Module:Refresh(fromUser)
-  self.isUserTriggered = fromUser
   self.currentMapID = GetCurrentMapAreaID()
   rprint('|cFF00FF88'..self:GetName()..':Refresh()|r', fromUser or '|cFFFFFF00internal')
   print('|cFF00FF88'..self:GetName()..':Refresh()|r', fromUser or '|cFFFFFF00internal')
@@ -437,7 +441,7 @@
   self:UpdateAnchors(nil, fromUser)
   self:Cleanup (fromUser)
   self.isStale = nil
-  self.isUserTriggered = nil
+  self.sizesDirty = nil
 end
 
 -- update visibility states of all pins
@@ -465,12 +469,17 @@
   if x and y then
     pin.x = x
     pin.y = y
-    pin.throttle = 1
     pin:SetFrameLevel(PinBaseIndex+pin:GetID())
     pin:SetAnchor(self.hostFrame, pin.x, pin.y, self.hostWidth, self.hostHeight)
-    tinsert(self.UsedPositions, pin)
+    --tinsert(self.UsedPositions, pin)
   end
-
+  if self.sizesDirty then
+    if self:IsVisible() then
+      pin:Refresh()
+    else
+      pin.isStale = true
+    end
+  end
   if mapID then
     if not db.QuestsByZone[mapID] then
       db.QuestsByZone[mapID] = {}