scrollview: fix on_effect_cls with factory