DN_CONTROLINPUT

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
John Doe
Бюрократ
Posts: 11409
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 10:05

Latest post of the previous page:

zg wrote: работа по нажатию в любом случае — ошибка.
Не понял.
В обсуждаемых примерах ошибки не вижу.

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 10:12

в фаре ошибка.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 10:13

И в чём она заключается?

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 10:21

в том что для нажатий на модификаторы InputRecordToName не возвращает ошибку.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 10:33

И раньше не возвращал, если менять, то старые плагины могут отвалиться.

Потенциальную проблему вижу только в том, что сейчас по имени клавиши нельзя понять нажата она, или отпущена.
(на практике достаточно проверить KeyDown)

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 10:49

John Doe wrote:И раньше не возвращал, если менять, то старые плагины могут отвалиться.
раньше при отжатии приходило нажатие. а при нажатии вообще ничего не приходило. как раз отвалится плагины могут от внезапных alt/shift/ctrl по нажатию, которых раньше не было.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 10:50

zg wrote: как раз отвалится плагины могут от внезапных alt/shift/ctrl по нажатию, которых раньше не было.
В сабж они сейчас и не приходят.

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 10:51

и не должны.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 10:53

Тогда о чём речь в вашем предыдущем сообщении?

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 10:57

ProcessEditorInputW.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 11:16

В ProcessEditorInputW и раньше приходили нажатия модификаторов.
"Исправив" FarInputRecordToName можно поломать старые плагины (например немодальный инкрементальный поиск).

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 11:32

John Doe wrote:В ProcessEditorInputW и раньше приходили нажатия модификаторов.
"Исправив" FarInputRecordToName можно поломать старые плагины (например немодальный инкрементальный поиск).
перечитайте.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 11:49

zg wrote: раньше при отжатии приходило нажатие. а при нажатии вообще ничего не приходило.
"Раньше" это в Far 1.x?

Последние правки в Far 3 ничего в этом плане не меняли (или что-то я не врублюсь, о чём речь).

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 12:14

John Doe wrote:
zg wrote: раньше при отжатии приходило нажатие. а при нажатии вообще ничего не приходило.
"Раньше" это в Far 1.x?
до 4318. 4318—4320 приходили только отжатия в момент отжатий. 4321—4336 опять только нажатия в момент отжатий. 4337 и дальше и нажатия и отжатия в нужные моменты.

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 12:18

zg wrote: до 4318
Мы ведь о ProcessEditorInputW?
Запускаю 4242, и в редакторе вижу и нажатия, и отжатия , и автоповтор.

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

DN_CONTROLINPUT

Post by zg » Thu 23 Apr, 2015 13:36

John Doe wrote:Запускаю 4242, и в редакторе вижу и нажатия, и отжатия.
забавно. ок. что конкретно сломалось в 4355?

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

DN_CONTROLINPUT

Post by John Doe » Thu 23 Apr, 2015 14:24

4355 не щупал, но если я правильно понимаю, то этот пример будет возвращать nil.

Если какой-то плагин ожидает нажатия Ctrl (и использует при этом FarInputRecordToName), то он не дождётся.
Это гипотетический плагин, и реальных претензий к 4355 у меня нет (свои макросы и плагины как-то приспособлю в любом случае ).

P.S.
Хотя ситуация сейчас не очень правильная, ведь в ProcessEditorInputW постоянно приходят сообщения об отпускании модификаторов, даже если модификатор не одиночный, а в сочетаниях.
Например нажатие/отпускание CtrlA тоже приведёт к приходу сообщения, которое будет преобразовано в "Ctrl". Не очень логично.

Имхо, FarInputRecordToName стоит обрабатывать и нажатия и отпускания, но отпускания можно именовать иначе, типа AltRelease.
(А как это передавать в DN_CONTROLINPUT не нарушая совместимости - воспрос открытый)

Post Reply

Return to “Разработка плагинов”