In an attempt to solve the issue, I tried to do the reverse: set a "normal" Update of 1000 milliseconds in the Rainmeter section, let the "regular" measures and meters update at that rate, and use the UpdateDivider option to lower the update rate of the measures and meter involved in the animation (the animation is controlled by a set of !SetOption, !UpdateMeter and !Redraw bangs from a "counter" measure) to the desired 50 milliseconds. Needless to say, while this obviously solved the tooltip flickering issue, it didn't succeed in building a proper animation, since the meter moves once every 1000 milliseconds instead of the 50 that the UpdateDivider supposedly should have set on the animation elements of the skin. My guess is that it didn't work because the value of the UpdateDivider can't be fractional (and it had to be that way, since the actual update rate is Update x UpdateDivider, i.e. 1000 x (50/1000) = 50 milliseconds, so UpdateDivider must be 50/1000, aka 1/20 - a fractional value).
Of course, I've also tried to set UpdateDivider=-1 on the meter that shows the tooltip on hover, not to mention using the DefaultUpdateDivider option to help with it, but that didn't solve the issue either. Any ideas what can I do to both eliminate the tooltip flickering issue and make the animation work as expected?
Relevant sections of the (simplified) skin - this is the DefaultUpdateDivider version, that sets an UpdateDivider=1 on the animation elements (as per jsmorley's advice here):
Code: Select all
[Variables]
SkinWidth=300
SkinHeight=16
UpdateInterval=1000
SlidingStep=1
SlidingUpdate=50
ScrollingStep=10
MovingStringWidth=0
[Rainmeter]
SkinWidth=#SkinWidth#
SkinHeight=#SkinHeight#
Update=#SlidingUpdate#
DefaultUpdateDivider=(#UpdateInterval#/#SlidingUpdate#)
---Measures---
[MS_Rainmeter_MovingString]
Measure=String
String=Some Moderately Long Moving String Here
UpdateDivider=-1
DynamicVariables=1
[MS_Rainmeter_Counter]
Measure=Calc
Formula=((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#SlidingStep#))
UpdateDivider=1
OnUpdateAction=[!SetOption MT_Rainmeter_MovingString X (#SkinWidth#-[MS_Rainmeter_Counter])][!UpdateMeter *][!Redraw]
DynamicVariables=1
---Meters---
[MT_Rainmeter_VisibleContainer]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,#SkinWidth#,#SkinHeight# | Fill Color 128,128,128,255 | StrokeWidth 0
ToolTipWidth=322
ToolTipTitle="Some ToolTip Title Here"
ToolTipText=""Some Long ToolTip Content Here For The Flickering To Be Easily Seen"
MouseOverAction=[!PauseMeasure "MS_Rainmeter_Counter"]
MouseLeaveAction=[!UnpauseMeasure "MS_Rainmeter_Counter"]
MouseScrollUpAction=[!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter<=0)?(#SkinWidth#+#MovingStringWidth#):(MS_Rainmeter_Counter-#ScrollingStep#))][!UnpauseMeasure "MS_Rainmeter_Counter"][!UpdateMeasure "MS_Rainmeter_Counter"][!PauseMeasure "MS_Rainmeter_Counter"][!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#SlidingStep#))]
MouseScrollDownAction=[!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#ScrollingStep#))][!UnpauseMeasure "MS_Rainmeter_Counter"][!UpdateMeasure "MS_Rainmeter_Counter"][!PauseMeasure "MS_Rainmeter_Counter"][!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#SlidingStep#))]
DynamicVariables=1
[MT_Rainmeter_Container]
Meter=Shape
X=0
Y=0
Shape=Rectangle 0,0,#SkinWidth#,#SkinHeight# | Fill Color 0,0,0,255 | StrokeWidth 0
ToolTipWidth=322
ToolTipTitle="Some ToolTip Title Here"
ToolTipText=""Some Long ToolTip Content Here For The Flickering To Be Easily Seen"
MouseOverAction=[!PauseMeasure "MS_Rainmeter_Counter"]
MouseLeaveAction=[!UnpauseMeasure "MS_Rainmeter_Counter"]
MouseScrollUpAction=[!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter<=0)?(#SkinWidth#+#MovingStringWidth#):(MS_Rainmeter_Counter-#ScrollingStep#))][!UnpauseMeasure "MS_Rainmeter_Counter"][!UpdateMeasure "MS_Rainmeter_Counter"][!PauseMeasure "MS_Rainmeter_Counter"][!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#SlidingStep#))]
MouseScrollDownAction=[!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#ScrollingStep#))][!UnpauseMeasure "MS_Rainmeter_Counter"][!UpdateMeasure "MS_Rainmeter_Counter"][!PauseMeasure "MS_Rainmeter_Counter"][!SetOption MS_Rainmeter_Counter Formula ((MS_Rainmeter_Counter>=(#SkinWidth#+#MovingStringWidth#))?(0):(MS_Rainmeter_Counter+#SlidingStep#))]
DynamicVariables=1
[MT_Rainmeter_MovingString]
Container=MT_Rainmeter_Container
Meter=STRING
AntiAlias=1
ClipString=0
X=0
Y=0
H=#SkinHeight#
MeasureName=MS_Rainmeter_MovingString
Text="%1"
OnUpdateAction=[!SetVariable MovingStringWidth [MT_Rainmeter_MovingString:W]]
DynamicVariables=1