handle mouse wheel events directly so we're not reliant on the sizing of the internal widget
reset preferred size calc after text change
fake a scroll event after layout to ensure we're in the right spot if the content has changed
always keep a slider object around, so we can get/set the slider position even when its off-screen
force output scroll to the bottom after each command