Дальнейший сим: AutoAway
May. 3rd, 2008 09:38 pmРешил побороть очередну багу. Бага такая: если сим перешел в статус N/A (или подобный) по таймауту, то если быстро и с минимумом движений мышью нажать на кнопку "выход", то оно не успевает вернуться в исходный режим, и при следующем входе N/A будет уже включен жестко...
Почитав исходники, стало ясно, что таки да, плагин нагло переписывает статус в модуле _core, запоминая что там было, а потом после шевеления мышки возвращает все как было...
Подумал было, не врзвращать ли все как было по событию eEventQuit. А вот опаньки... оно сначала конфиги пишет, а потом событие дергает...
Конечно, дурное дело не хитрое, и можно завести и событие eEventPreQuit и дергать его перд всем... но возникает другой вопрос: сим пишет конфиги на диск очень часто... Точно когда не знаю, но проще считать что он делает это все время. И если компьютер выключить по питанию, и он за время простоя решит что-то в конфиг записать, эффект будет тот же самый... что Quit'ом, что с PreQuit'ом...
Сейчас буду обдумывать не перенести ли старое значение статуса из приватных свойств класса в поля которые попадают в конфиг. Тогда сразу после загрузки будет шанс вернуть все обратно как было...
Почитав исходники, стало ясно, что таки да, плагин нагло переписывает статус в модуле _core, запоминая что там было, а потом после шевеления мышки возвращает все как было...
Подумал было, не врзвращать ли все как было по событию eEventQuit. А вот опаньки... оно сначала конфиги пишет, а потом событие дергает...
Конечно, дурное дело не хитрое, и можно завести и событие eEventPreQuit и дергать его перд всем... но возникает другой вопрос: сим пишет конфиги на диск очень часто... Точно когда не знаю, но проще считать что он делает это все время. И если компьютер выключить по питанию, и он за время простоя решит что-то в конфиг записать, эффект будет тот же самый... что Quit'ом, что с PreQuit'ом...
Сейчас буду обдумывать не перенести ли старое значение статуса из приватных свойств класса в поля которые попадают в конфиг. Тогда сразу после загрузки будет шанс вернуть все обратно как было...