desktop: don't save positions immediately
instead delay the save using a timer that keeps getting restarted if data keeps changing. this is important because positions can change rapidly during initial populating of the model. using the timer we batch the save calls into ideally a single sync of the config.
parent
ed571ad3