I would go even further and would move the action-widget outside the <$button
widget body like this
\define myActions()
<$action-sendmessage $message="tm-open-window" $param="$:/demo/openme"
template="$:/demo/openme/template" something="isnt nothing" windowTitle="huh" />
\end
<$button actions=<<myActions>> >Open Window</$button>
Which makes it sure, that all parameters that are used in myActions are evaluated on button click. Params inside the button widget are evaluated, when the button is rendered. … Sometimes this can result in strange behaviour. …
The button widget was created as one of the very first widgets in the tiddlywiki5 development cycle. …
It was overloaded with a lot of functions, when they where needed. New parameters where added if needed and so on … In the end it turned out to be a “black box mess”…
That’s why it has so many different and inconsistent parameters. Depending on the functionality needed different parameters have to be assigned and other don’t matter at all.
So from my point of view the button widget is used, for production, as described here.