fix widget change bug