widget.js: more consistent pre/post Show/Hide