Fix several regressions in Button