Счётчик нажатий мышки

Автор Tigrik, 6 декабря 2021, 19:05

0 Пользователи и 1 гость просматривают эту тему.

kompilainenn

Цитата: sokol92 от  9 января 2022, 20:37И еще один штрих в тему.

(Псевдо) свойство CurrentController для документа Calc довольно коварное, так как при переходе в режим предварительного просмотра печати документа и обратно этот объект создается заново. Соответственно, наш слушатель мыши, для которого CurrentController является вещателем (генерирует события), после возврата из режима предварительного просмотра, увы, перестанет реагировать на щелчки мыши (проверьте!).
Может это тоже бага?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Цитата: kompilainenn от 10 января 2022, 12:04
Может это тоже бага?

Нет. Но задокументировать это как-то было бы полезно ... у Питоньяка?
С уважением,
Михаил Каганский

sokol92

#47
Цитата: mikekaganski от 10 января 2022, 12:21у Питоньяка
Поискал. В Греции У Питоньяка всё есть!

AndrewMacro.odt,
Цитировать14.1. Warning, your handler may disappear
.
В переводе: "Некоторые обработчики, такие как обработчик событий клавиатуры, используют текущий контроллер. К сожалению, иногда контроллер удаляется и создается новый. Например, при переключении в режим предварительного просмотра компонент отсоединяется от фрейма, чтобы создать новый вид документа..."

В Calc других подобных ситуаций я не встречал.
Владимир.

kompilainenn

Цитата: mikekaganski от 10 января 2022, 12:21Нет.
Ты не думаешь, что такое поведение - это не нормально и надо бы его изменить?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Нет, не думаю. Программа не может сохранить список слушателей контроллера на то время, когда вид меняется, потому что тогда была бы возможна ситуация, что пока активен другой вид, слушатель уничтожился, а контроллера, который бы его убрал из временного списка, не было бы. И когда вид вернулся, новый контроллер восстановил бы старый список слушателей, среди которых был бы уничтоженный - и это привело бы к крашу, причём это было бы невозможно предотвратить..
С уважением,
Михаил Каганский