desktop: listen property replace set func