Fixes #3091: Fixed inconsistent treatment of `Widget::run()` when a widget is used as a container and as a self-contained object