Test skin (let's say it's Test\Test.ini):
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
OnRefreshAction=[!Log "I was just refreshed"]
OnCloseAction=[!Log "I will be closed now"]
---Meters---
[DummyMeter]
Meter=STRING
FontFace=Consolas
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
FontSize=16
AntiAlias=1
Text="Dummy Stuff"
UpdateDivider=-1
DynamicVariables=1
The Log shows that when refreshing the skin, the OnCloseAction doesn't trigger. Is this normal? The manual says that !Refresh "reads the skin file and recreates the skin", but doesn't this require closing the skin before "recreating it"? If it doesn't, how can I replicate what OnCloseAction does, but right before !Refresh triggers in? Trying an alternate left click action attached to the meter:
Code: Select all
LeftMouseUpAction=[!DeactivateConfig][!ActivateConfig "Test" "Test.ini"]
to be able to use the OnCloseAction before reloading the skin doesn't work, since the Log writes that the "refresh" happened before "closing", aka the skin was loaded before being closed (is that even possible, logically?):
DeactivateAndActivate.jpg
Anyway, what I'm trying to do is !WriteKeyValue some variables just before a refresh (or, if it would be possible, an unload->reload sequence) happens. The values of those variables change very quickly while the skin is active (through on demand scrolling) so it would be overkill to save each of those variables every millisecond during such a scrolling sequence, hence leaving saving all of them just once before a !Refresh bang does its thing.
Hopefully I've been clear enough in my description. A minor suggestion of an OnSwitchAction (e.g. action to execute before refresh) would be feasible too, if you don't think messing with what OnCloseAction does is a good idea or it simply can't be done.
You do not have the required permissions to view the files attached to this post.