<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -57,7 +57,7 @@ local function OnUpdate(f)
 			end
 		end
 
-		Quecho:UpdateTracker()
+		WatchFrame_Update()
 		if not next2 then f:SetScript(&quot;OnUpdate&quot;, nil) end
 		nextpurge = next2
 	end
@@ -88,7 +88,7 @@ function Quecho:CHAT_MSG_ADDON(event, prefix, msg, channel, sender)
 		end
 		self.quests[sender][objective] = progress
 
-		self:UpdateTracker()
+		WatchFrame_Update()
 
 	elseif prefix == &quot;Quecho2&quot; then self:PrintF(&quot;%s turned in %s &quot;, sender, msg)
 	elseif prefix == &quot;Quecho3&quot; then self:PrintF(&quot;%s accepted %s &quot;, sender, msg)</diff>
      <filename>Quecho.lua</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,7 @@
 
 
 local f = CreateFrame(&quot;Frame&quot;, nil, UIParent)
-f:SetHeight(1)
-f:SetPoint(&quot;TOPRIGHT&quot;, QuestWatchFrame, &quot;TOPLEFT&quot;, -10, -13)
+f:SetWidth(1) f:SetHeight(1)
 local lines = setmetatable({}, {__index = function(t, i)
 	local fs = f:CreateFontString(nil, nil, &quot;GameFontNormal&quot;)
 	if i == 1 then fs:SetPoint(&quot;TOPLEFT&quot;) else fs:SetPoint(&quot;TOPLEFT&quot;, t[i-1], &quot;BOTTOMLEFT&quot;) end
@@ -12,31 +11,30 @@ end})
 
 
 local current = 0
-local function AddLine(text, r, g, b)
+local function AddLine(text, maxwidth, heightUsed, r, g, b)
 	current = current + 1
-	lines[current]:SetText(text)
-	lines[current]:SetTextColor(r or .75, g or .61, b or 0)
-	local w = lines[current]:GetStringWidth()
-	if f:GetWidth() &lt; w then f:SetWidth(w) end
+	local l = lines[current]
+	l:SetText(text)
+	l:SetTextColor(r or .75, g or .61, b or 0)
+	return math.max(maxwidth, l:GetStringWidth()), heightUsed + l:GetHeight()
 end
 
 
-function Quecho:UpdateTracker()
+WatchFrame_AddObjectiveHandler(function(lineFrame, initialOffset, maxHeight, frameWidth)
+	local maxWidth = 0
+	local heightUsed = 0
+
+	f:SetPoint(&quot;TOPLEFT&quot;, lineFrame, &quot;TOPLEFT&quot;, 0, initialOffset - WATCHFRAME_QUEST_OFFSET)
+
 	current = 0
 	for _,fs in ipairs(lines) do fs:SetText() end
-	f:SetWidth(0)
 
-	for sender,values in pairs(self.quests) do
+	for sender,values in pairs(Quecho.quests) do
 		if next(values)then
-			AddLine(sender)
-			for i,v in pairs(values) do AddLine(&quot; - &quot;..i..&quot;: &quot;..v, 0.8, 0.8, 0.8) end
+			maxWidth, heightUsed = AddLine(sender, maxWidth, heightUsed)
+			for i,v in pairs(values) do maxWidth, heightUsed = AddLine(&quot; - &quot;..i..&quot;: &quot;..v, maxWidth, heightUsed, 0.8, 0.8, 0.8) end
 		end
 	end
-end
-
-
-local orig = QuestWatchFrame.Hide
-local function posthook(frame, ...) frame:SetWidth(1); return ... end
-QuestWatchFrame.Hide = function(frame, ...) return posthook(frame, orig(frame, ...)) end
 
-if GetNumQuestWatches() == 0 then QuestWatchFrame:SetWidth(1) end
\ No newline at end of file
+	return heightUsed, maxWidth
+end)</diff>
      <filename>Tracker.lua</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ffd2bac5ece490368b8b9617052c1f28a57a7565</id>
    </parent>
  </parents>
  <author>
    <name>Tekkub</name>
    <email>tekkub@gmail.com</email>
  </author>
  <url>http://github.com/tekkub/quecho/commit/a00f690be611e209e4162cfb647402591635db3d</url>
  <id>a00f690be611e209e4162cfb647402591635db3d</id>
  <committed-date>2009-04-19T17:56:44-07:00</committed-date>
  <authored-date>2009-04-19T17:56:44-07:00</authored-date>
  <message>Add support for new improved tracker frame</message>
  <tree>afab4d3c366f8089657568f8a0cbf0d961d61ca2</tree>
  <committer>
    <name>Tekkub</name>
    <email>tekkub@gmail.com</email>
  </committer>
</commit>
