View Issue Details

IDProjectCategoryView StatusLast Update
0000622Far Manager 1.7xEditorpublic2009-03-29 17:57
Reporterdolzenko Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.75 
Summary0000622: После ACTL_SETCURRENTWINDOW (или ACTL_COMMIT?) не посылается EE_KILLFOCUS
DescriptionСобственно сабж. Вроде бы баг.
Патч тупой, для иллюстрации, копирует поведение из Manager::ProcessKey() по F12.
TagsNo tags attached.
Build2449

Activities

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;
ACTL_SETCURRENTWINDOW.patch (583 bytes)   

dolzenko

2008-10-25 02:43

reporter   bugnote:0001895

И еще: EE_GOTFOCUS приходит два раза (одинаковый).

vskirdin

2008-11-01 00:27

administrator   bugnote:0001915

поясни первопричину... нужно сначала понять в чем баг, а не делать костыли (возможно и не костыль).
Ттестовый плагин приветствуется + пошаговое описание проблемы.

vskirdin

2008-11-01 01:34

administrator   bugnote:0001916

Вопрос: после ACTL_SETCURRENTWINDOW плагин вызывает ACTL_COMMIT?

dolzenko

2008-11-01 04:26

reporter   bugnote:0001917

Last edited: 2008-11-01 04:38

Тестовый плагин в аттаче.

Если вручную последовательность действий/событий такая:

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

 

TestPlugin.cpp (2,863 bytes)

vskirdin

2008-11-01 07:03

administrator   bugnote:0001918

Ок. Принимается. Видимо недосмотр случился.

Одно но...

В F12 есть условие ==> можем переключиться, если мы не в хелпе и не в диалоге.
Видимо здесь тоже нужно добавить.
Т.е. в итоге должно получиться - нельзя переключиться, если мы в модальном редакторо-вьювере или в хелпе или в диалоге.

vskirdin

2008-11-05 03:25

administrator   bugnote:0001922

Подобные изменения делать и в 1.7?

vskirdin

2008-11-05 06:27

administrator   bugnote:0001925

после 578/2449
с добавками: Запретим переключение фрэймов, если находимся в хелпе или диалоге

Issue History

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