@@ -8,6 +8,7 @@ local L = TTT.L;
88--- @class TalentTreeTweaks_ScaleTalentFrame : AceModule , AceHook-3.0
99local Module = Main :NewModule (' ScaleTalentFrame' , ' AceHook-3.0' );
1010
11+ local SetScale = GetFrameMetatable ().__index .SetScale
1112local TALENT_TREE_VIEWER = TalentViewerLoader and TalentViewerLoader :GetLodAddonName () or ' TalentTreeViewer' ;
1213local BLIZZARD_TALENT_UI = 2 ;
1314
@@ -62,7 +63,7 @@ function Module:GetOptions(defaultOptionsTable, db)
6263 value = math.max (0.5 , math.min (2 , value ));
6364 self .db [info [# info ]] = value ;
6465 local containerFrame = Util :GetTalentContainerFrameIfLoaded ();
65- if containerFrame and containerFrame .SetScale and not InCombatLockdown () then containerFrame : SetScale (value ); end
66+ if containerFrame and containerFrame .SetScale and not InCombatLockdown () then SetScale (containerFrame , value ); end
6667 end ,
6768 min = 0.5 ,
6869 max = 2 ,
@@ -89,13 +90,16 @@ function Module:SetupHook(addon)
8990 self .db [settingKey ] = frame :GetScale ();
9091 end
9192
93+ self :SecureHook (frame , ' SetScale' , function ()
94+ self :OnShow (frame , settingKey ); -- Reset the scale if someone else tries to set it.
95+ end );
9296 self :SecureHookScript (frame , ' OnMouseWheel' , function (_ , delta ) self :OnMouseWheel (frame , delta , settingKey ); end );
9397 self :SecureHookScript (buttonsParent , ' OnMouseWheel' , function (_ , delta ) self :OnMouseWheel (frame , delta , settingKey ); end );
9498 self :SecureHookScript (frame , ' OnShow' , function () self :OnShow (frame , settingKey ); end );
9599
96100 if frame :IsProtected () then
97101 Util :AddToCombatLockdownQueue (function ()
98- frame : SetScale (self .db [settingKey ]);
102+ SetScale (frame , self .db [settingKey ]);
99103 local helper = CreateFrame (' Frame' , nil , frame , ' SecureHandlerShowHideTemplate' );
100104 frame .TTT_ScaleHelper = helper ;
101105 helper :SetFrameRef (' frame' , frame );
@@ -108,18 +112,17 @@ function Module:SetupHook(addon)
108112 frame:SetScale(scale);
109113 ]] );
110114 end );
111-
112- return ;
115+ else
116+ SetScale ( frame , self . db [ settingKey ]) ;
113117 end
114- frame :SetScale (self .db [settingKey ]);
115118end
116119
117120--- @param frame Frame
118121--- @param settingKey string
119122function Module :OnShow (frame , settingKey )
120123 if frame :IsProtected () and InCombatLockdown () then return ; end
121124
122- frame : SetScale (self .db [settingKey ]);
125+ SetScale (frame , self .db [settingKey ]);
123126end
124127
125128--- @param frame Frame
@@ -136,5 +139,5 @@ function Module:OnMouseWheel(frame, delta, settingKey)
136139 if frame .TTT_ScaleHelper then
137140 frame .TTT_ScaleHelper :SetAttribute (' scale' , scale );
138141 end
139- frame : SetScale (scale );
142+ SetScale (frame , scale );
140143end
0 commit comments