MENU_EVENT

Здесь можно сообщить о найденных багах в Far.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 11223
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

MENU_EVENT

Post by John Doe » Wed 03 Aug, 2016 09:36

В ProcessEditorInputW, ProcessDialogEventW (DN_INPUT) вместо FOCUS_EVENT приходит MENU_EVENT (CommandId = 0)

Баг?

User avatar
zg
zero-gravity
Posts: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

MENU_EVENT

Post by zg » Wed 03 Aug, 2016 18:38

как воспроизвести? вот просто так — у меня всё ок.

User avatar
John Doe
Бюрократ
Posts: 11223
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

MENU_EVENT

Post by John Doe » Wed 03 Aug, 2016 20:45

Code: Select all

  local F = far.Flags
  Event { group="ConsoleInput";
    action=function(Rec)
      if Rec.EventType==F.FOCUS_EVENT then
        return 1
      end
    end;
  }
Т.е. выходит сам дурак, но почему "проглоченный" FOCUS_EVENT превращается в MENU_EVENT всё же интересно

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

MENU_EVENT

Post by Shmuel » Thu 04 Aug, 2016 06:33

John Doe
Вас попросили пример, как воспроизвести то, что, как вы заявили, "вместо FOCUS_EVENT приходит MENU_EVENT".
Я бы сказал, что из вашего примера этого не видно. (Или я ещё не дорос до такого уровня).

User avatar
John Doe
Бюрократ
Posts: 11223
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

MENU_EVENT

Post by John Doe » Thu 04 Aug, 2016 08:28

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, и убедиться что стало наоборот.

User avatar
zg
zero-gravity
Posts: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

MENU_EVENT

Post by zg » Thu 04 Aug, 2016 09:17

насколько я понимаю, так задумано.

User avatar
John Doe
Бюрократ
Posts: 11223
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

MENU_EVENT

Post by John Doe » Thu 04 Aug, 2016 09:34

Да, то что я увидел это с FOCUS_EVENT просто случайность, на самом деле любое "проглоченное" событие превращается внутри в KEY_NONE, а затем зачем-то преобразуется в MENU_EVENT.

Post Reply

Return to “Глюки и баги”