Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   TLF UndoManager теряет undo/redo при потере фокуса (http://www.flasher.ru/forum/showthread.php?t=195182)

AlexLucas 01.03.2013 20:05

TLF UndoManager теряет undo/redo при потере фокуса
 
Доброго времени суток.
Столкнулся с необходимостью сделать UndoManager, для многих операций я уже сделал, но вот у s:TextArea, как и наверно у всех текстовых полей есть свой UndoManager, который и занимается записью и выполнением undo команд.
Проблема в том, что если текстовое поле теряет фокус, то все команды удаляются. Убедиться можно тут - проскрольте вниз до примерчика, там сделайте что-нибудь, потом щёлкните по другому полю, потом обратно, и нажмите CTRL-Z для Undo.
Для меня это неприемлимо, так что пока пишу свой UndoManager, что оказалось достаточно геморно если учитывать все действия которые пользователь производит при работе с текстовыми полями, и API и структуру самого TLF.

Если кто сталкивался с такой проблемой, и нашёл решение, подскажите пожалуйста, а то приходится изобретать велосипед.

AlexLucas 05.03.2013 13:56

Судя по всему решение где-то в Spark компонентах.
Вот тут мне ответили что может быть когда-нибудь посмотрят и исправят.

alatar 05.03.2013 21:32

UndoManager тут не при чем. Он с установленным в false флагом clearUndoOnFocusOut не очищается, что видно в дебаггере.

Добавлено через 20 минут
Только что проверил, работает как положено. Не работает в IE, что ожидаемо, т.к. он перехватывает все хоткеи.

AlexLucas 06.03.2013 13:03

Можете показать где в коде вы его устанвливаете в false?
И как?

alatar 06.03.2013 13:08

Установил точно также как у вас на адобовском форуме. Сделал тестовое приложение, флаг установил по CREATION_COMPLETE приложения, но это не важно, лишь бы он был установлен перед потерей фокуса.

AlexLucas 06.03.2013 13:32

А вы пробовали менять формат текста ?
У меня сохранаяет только удаление/добавку текста. Если изменить формат, он не только не сохраняет это действие, но и удаляет все сохранённые действия удаления и добавки текста.
Даже без потери фокуса он не сохраняет изменения формата текста.
А судя по наличию операций ApplyFormatOperation и ApplyFormatToElementOperation, он их должен сохранять.


Часовой пояс GMT +4, время: 02:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.