В ProcessEditorInputW, ProcessDialogEventW (DN_INPUT) вместо FOCUS_EVENT приходит MENU_EVENT (CommandId = 0)
Баг?
MENU_EVENT
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
MENU_EVENT
Code: Select all
local F = far.Flags
Event { group="ConsoleInput";
action=function(Rec)
if Rec.EventType==F.FOCUS_EVENT then
return 1
end
end;
}
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
MENU_EVENT
John Doe
Вас попросили пример, как воспроизвести то, что, как вы заявили, "вместо FOCUS_EVENT приходит MENU_EVENT".
Я бы сказал, что из вашего примера этого не видно. (Или я ещё не дорос до такого уровня).
Вас попросили пример, как воспроизвести то, что, как вы заявили, "вместо FOCUS_EVENT приходит MENU_EVENT".
Я бы сказал, что из вашего примера этого не видно. (Или я ещё не дорос до такого уровня).
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
MENU_EVENT
Code: Select all
local F = far.Flags
NoEvent { group="ConsoleInput";
action=function(Rec)
if Rec.EventType==F.FOCUS_EVENT then
return 1
end
end;
}
Event { group="EditorInput";
action=function(Rec)
if Rec.EventType==F.FOCUS_EVENT then
far.Message"FOCUS_EVENT"
elseif Rec.EventType==F.MENU_EVENT then
far.Message"MENU_EVENT"
end
end;
}
Открыть редактор, убедиться, что FOCUS_EVENT приходит, а MENU_EVENT нет.
Изменить NoEvent на Event, и убедиться что стало наоборот.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
MENU_EVENT
Да, то что я увидел это с FOCUS_EVENT просто случайность, на самом деле любое "проглоченное" событие превращается внутри в KEY_NONE, а затем зачем-то преобразуется в MENU_EVENT.