View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000622 | Far Manager 1.7x | Editor | public | 2008-10-25 02:38 | 2009-03-29 17:57 |
Reporter | dolzenko | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.75 | ||||
Summary | 0000622: После ACTL_SETCURRENTWINDOW (или ACTL_COMMIT?) не посылается EE_KILLFOCUS | ||||
Description | Собственно сабж. Вроде бы баг. Патч тупой, для иллюстрации, копирует поведение из Manager::ProcessKey() по F12. | ||||
Tags | No tags attached. | ||||
Build | 2449 | ||||
2008-10-25 02:38
|
ACTL_SETCURRENTWINDOW.patch (583 bytes)
Index: plugapi.cpp =================================================================== --- plugapi.cpp (revision 2033) +++ plugapi.cpp (working copy) @@ -516,7 +516,9 @@ if (FrameManager && !FrameManager->InModalEV() && FrameManager->operator[]((int)(INT_PTR)Param)!=NULL ) { - FrameManager->ActivateFrame((int)(INT_PTR)Param); + Frame* PrevFrame = FrameManager->GetCurrentFrame(); + FrameManager->ActivateFrame((int)(INT_PTR)Param); + FrameManager->DeactivateFrame(PrevFrame, 0); return TRUE; } return FALSE; |
|
И еще: EE_GOTFOCUS приходит два раза (одинаковый). |
|
поясни первопричину... нужно сначала понять в чем баг, а не делать костыли (возможно и не костыль). Ттестовый плагин приветствуется + пошаговое описание проблемы. |
|
Вопрос: после ACTL_SETCURRENTWINDOW плагин вызывает ACTL_COMMIT? |
|
Тестовый плагин в аттаче. Если вручную последовательность действий/событий такая: ShiftF4 "1.txt" (Открываем 1.txt на редактирование, получаем события) EE_READ EditorID == 1 (C:\1.txt) EE_GOTFOCUS EditorID == 1 (C:\1.txt) F12 0 (переходим на панели) EE_GOTFOCUS EditorID == 1 (C:\1.txt) EE_KILLFOCUS EditorID == 1 (C:\1.txt) Если через ACTL_SETCURRENTWINDOW: ShiftF4 "1.txt" (Открываем 1.txt на редактирование, получаем события) EE_READ EditorID == 1 (C:\1.txt) EE_GOTFOCUS EditorID == 1 (C:\1.txt) F11 "Test" (переходим на панели через ACTL_SETCURRENTWINDOW, панели активируются) <редактор никаках событий не получает> Тут анонсировал версию плагина в котором столкнулся с этими проблемами http://forum.farmanager.com/viewtopic.php?f=11&t=3546 |
2008-11-01 04:27
|
|
|
Ок. Принимается. Видимо недосмотр случился. Одно но... В F12 есть условие ==> можем переключиться, если мы не в хелпе и не в диалоге. Видимо здесь тоже нужно добавить. Т.е. в итоге должно получиться - нельзя переключиться, если мы в модальном редакторо-вьювере или в хелпе или в диалоге. |
|
Подобные изменения делать и в 1.7? |
|
после 578/2449 с добавками: Запретим переключение фрэймов, если находимся в хелпе или диалоге |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-10-25 02:38 | dolzenko | New Issue | |
2008-10-25 02:38 | dolzenko | File Added: ACTL_SETCURRENTWINDOW.patch | |
2008-10-25 02:43 | dolzenko | Note Added: 0001895 | |
2008-11-01 00:27 | vskirdin | Note Added: 0001915 | |
2008-11-01 01:34 | vskirdin | Note Added: 0001916 | |
2008-11-01 04:26 | dolzenko | Note Added: 0001917 | |
2008-11-01 04:27 | dolzenko | File Added: TestPlugin.cpp | |
2008-11-01 04:27 | dolzenko | Note Edited: 0001917 | |
2008-11-01 04:37 | dolzenko | Note Edited: 0001917 | |
2008-11-01 04:38 | dolzenko | Note Edited: 0001917 | |
2008-11-01 06:57 | vskirdin | Status | new => assigned |
2008-11-01 06:57 | vskirdin | Assigned To | => vskirdin |
2008-11-01 07:03 | vskirdin | Note Added: 0001918 | |
2008-11-05 03:25 | vskirdin | Note Added: 0001922 | |
2008-11-05 06:27 | vskirdin | Note Added: 0001925 | |
2008-11-05 06:27 | vskirdin | Status | assigned => feedback |
2009-03-29 17:57 | alexy | Build | => 2449 |
2009-03-29 17:57 | alexy | Status | feedback => closed |
2009-03-29 17:57 | alexy | Resolution | open => fixed |
2009-03-29 17:57 | alexy | Fixed in Version | => 1.75 |