View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002723 | Far Manager | Plugins API.Editor | public | 2014-06-29 09:09 | 2014-07-08 21:05 |
Reporter | shmuel | Assigned To | zg | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Target Version | 3.0 | Fixed in Version | 3.0 | ||
Summary | 0002723: ECTL_GETINFO не работает при вызове редактора из редактора | ||||
Description | После нажатия ShiftF4 из открытого редактора, если в EE_READ вывести меню, то после закрытия меню не работает ECTL_GETINFO, а именно: при передаче EditorID возвращается FALSE, а при передаче -1 возвращаются данные исходного редактора, а не нового. Если в EE_READ выводить не меню, а диалог (например, Message()), то ECTL_GETINFO работает правильно: как при передаче EditorID, так и при передаче -1. | ||||
Steps To Reproduce | Event { group="EditorEvent"; action=function(EditorID, Event, Param) if Event==far.Flags.EE_READ then info1 = editor.GetInfo(EditorID) far.Show"1" info2 = editor.GetInfo(EditorID) far.Show( EditorID, info1 and info1.EditorID, info2 and info2.EditorID ) end end; } | ||||
Tags | No tags attached. | ||||
Build | 3981 | ||||
|
> Если в EE_READ выводить не меню, а диалог (например, Message()), то ECTL_GETINFO работает правильно только с Message правильно. far.DialogRun — то же самое, что и с меню. |
|
> только с Message правильно. far.DialogRun — то же самое, что и с меню. А, возможно... Я только far.Message пробовал. |
|
во время EE_READ текущий редактор ещё не находится в списке окон, потому что объект собственно ещё не сконструирован. EditorControl работает благодаря вот такой магии: … Global->CtrlObject->Plugins->SetCurEditor(this); //&FEdit; Global->CtrlObject->Plugins->ProcessEditorEvent(EE_READ,nullptr,m_editor->EditorID); … FileEditor* currentEditor=Global->CtrlObject->Plugins->GetCurEditor(); if (currentEditor && currentEditor->GetId() == EditorID) EditorID = -1; if (EditorID == -1) { if (currentEditor) return currentEditor->EditorControl(Command,Param1,Param2); return 0; } … после показа меню/диалог, после их закрытия вызывается Frame::OnChangeFocus он вызывает Show у первого редактора (про второй он ещё не в курсе), а тот делает Global->CtrlObject->Plugins->SetCurEditor(HostFileEditor). магия перестаёт работать. |
|
с Message видимо работает, потому что запрещается перерисовка. |
|
Но при ShiftF4 из панелей, даже если есть несколько открытых редакторов, всё ОК. |
|
так они не перерисовываются. |
|
3968. |
|
Заработало, в том числе скрипт из fl_scripts, с которого всё началось. Но в этом скрипте есть editor.SetPosition(): до 3968 после вставки шаблона курсор стоял сразу в заданном месте, а сейчас - нет. То-есть SetPosition() по-прежнему работает правильно, но в 3968 требуется ещё перерисовка, а до 3968 она не требовалась. |
|
Ага, ещё 3968 падает с колорером (говорят здесь: http://forum.ru-board.com/topic.cgi?forum=5&topic=31718&start=5240#17). |
|
стандартный набор плагинов, чистый профиль, x86, gcc/vc2010, 3968/3969 — никаких проблем с колорером не наблюдаю. |
|
Я сам пока не пробовал, но эти товарищи с ру-борд в 95% случаев рапортуют реальные проблемы. |
|
я не говорю, что проблема нереальная. но что у них там стоят за плагины, макросы и настройки, мне неведомо. на моей конфигурации и на чистой — всё ок. |
|
Поставил колорер на 3969, тоже проблем не наблюдаю. |
|
Перепроверил на чистом профиле, падения действительно нет. Сейчас ищу причину. |
|
Попробуйте включить опцию [x] Изменять цвет фона редактора в настройках Colorer'a, перезапустить фар и проверить открытие файлов по F4. У меня вот так настроено: ╔══════════════ Настройки FarColorer ═══════════════╗ ║ [x] Включить ║ ║ [?] Показывать крест ║ ║ Вид креста целый ↓ ║ ║ [x] Выделять парные элементы ║ ║ [x] Показывать синтаксис ║ ║ [x] Классический стиль списка функций ║ ║ [x] Изменять цвет фона редактора ║ ║ Цветовой стиль:[ White colors ] ║ ║ Файл catalog.xml: ║ ║ ↓ ║ ║ Файл списка схем пользователя ║ ║ ↓ ║ ║ Файл цветовых стилей пользователя ║ ║ ↓ ║ ║ Log файл ║ ║ ↓ ║ ║──────────────── Настройки TrueMod ────────────────║ ║ [x] Включить ║ ║ Цветовой стиль:[ White (crimsoned) ] ║ ║───────────────────────────────────────────────────║ ║ [ Тест библиотеки схем ] [ Настройки схем ] ║ ║ { ОК } [ Отмена ]║ ╚═══════════════════════════════════════════════════╝ Падает. Из всех опций на падение влияет именно изменение цвета фона. |
|
да, так воспроизводится, на файлах, где этот бэкграунд меняется. |
|
это колорер циклится. на форуме, в теме колорера отписал подробнее. |
|
Builds 3968-3976: 1. Запускаем Фар с единственным плагином LuaFAR for Editor. В файле _usermenu.lua плагина только 2 следующие строчки: AddToMenu ("e", true, "Alt+1", 1) AddToMenu ("e", true, "Alt+1", 1) 2. Нажимаем F4 на каком-либо файле. 3. Плагин выводит сообщение: Key `Alt+1' is already allocated 4. Закрываем сообщение: ожидается переход в редактор, но этого не происходит. 5. Нажимаем Up и оказываемся в редакторе. |
|
Похоже, что всё пришло в норму. |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-06-29 09:09 | shmuel | New Issue | |
2014-06-29 09:13 | shmuel | Description Updated | |
2014-06-29 09:16 | shmuel | Description Updated | |
2014-06-29 10:59 | zg | Note Added: 0012624 | |
2014-06-29 11:16 | shmuel | Note Added: 0012625 | |
2014-06-29 11:21 | zg | Note Added: 0012626 | |
2014-06-29 11:25 | zg | Note Added: 0012627 | |
2014-06-29 11:34 | shmuel | Note Added: 0012628 | |
2014-06-29 11:40 | zg | Note Added: 0012629 | |
2014-06-29 14:32 | zg | Note Added: 0012633 | |
2014-06-29 15:51 | shmuel | Note Added: 0012635 | |
2014-06-29 17:22 | shmuel | Note Added: 0012640 | |
2014-06-29 19:29 | zg | Note Added: 0012642 | |
2014-06-29 19:33 | shmuel | Note Added: 0012643 | |
2014-06-29 19:41 | zg | Note Added: 0012644 | |
2014-06-29 19:46 | shmuel | Note Added: 0012645 | |
2014-06-29 19:52 | skipik | Note Added: 0012646 | |
2014-06-29 20:38 | skipik | Note Added: 0012647 | |
2014-06-29 20:52 | zg | Note Added: 0012648 | |
2014-06-29 21:01 | skipik | Note Edited: 0012647 | |
2014-06-29 21:01 | skipik | Note Edited: 0012647 | |
2014-06-29 21:09 | skipik | Note Edited: 0012647 | |
2014-06-29 23:27 | zg | Note Added: 0012650 | |
2014-07-03 07:22 | shmuel | Note Added: 0012665 | |
2014-07-08 21:05 | shmuel | Build | => 3981 |
2014-07-08 21:05 | shmuel | Note Added: 0012699 | |
2014-07-08 21:05 | shmuel | Status | new => closed |
2014-07-08 21:05 | shmuel | Assigned To | => zg |
2014-07-08 21:05 | shmuel | Resolution | open => fixed |
2014-07-08 21:05 | shmuel | Fixed in Version | => 3.0 |