Какие символы вводят Decimal, Add, Subtract, Multiply, Divide

Здесь можно сообщить о найденных багах в Far.
Post Reply
plastikat
Posts: 72
Joined: Fri 17 Jul, 2009 10:55
Has thanked: 1 time

Numpad и десятичный разделитель

Post by plastikat » Tue 23 Jul, 2019 17:06

На данный момент Far, при включенном NumLock и нажатии клавиши . Del, всегда (то есть, независимо от активной клавиатурной раскладки) печатает точку. Вроде бы, он всегда так и делал. При этом, ни одно другое (из известных мне) приложение так не делает -- на английской раскладке все печатают точку, а на русской - запятую. И это вполне логично, потому что "правильный" десятичный разделитель для русского языка это - запятая (хотя вопрос этот спорный, так как единого предписывающего стандарта не существует). Но стандарты - стандартами, а отличие поведения Far от других приложений - налицо. А вопрос - почему так? Прошу прощения, если вопрос риторический.
Last edited by plastikat on Wed 24 Jul, 2019 15:29, edited 1 time in total.

User avatar
DrKnS
Posts: 5419
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 248 times

Numpad и десятичный разделитель

Post by DrKnS » Tue 23 Jul, 2019 19:29

plastikat wrote:
Tue 23 Jul, 2019 17:06
А вопрос - почему так?
А потому что баг.
5433.

plastikat
Posts: 72
Joined: Fri 17 Jul, 2009 10:55
Has thanked: 1 time

Numpad и десятичный разделитель

Post by plastikat » Wed 24 Jul, 2019 15:31

Отлично, спасибо за работу!

Shmuel
Posts: 5908
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

Какие символы вводят Decimal, Add, Subtract, Multiply, Divide

Post by Shmuel » Thu 08 Aug, 2019 22:55

zg wrote:
Thu 08 Aug, 2019 22:49
а только у меня Keys("Add") в редакторе вставляет нулевой символ?
У меня тоже (билд 5443). На 5400 всё нормально.

Shmuel
Posts: 5908
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

Уменьшить скорость воспроизведения макроса

Post by Shmuel » Thu 08 Aug, 2019 23:06

Похоже на это:

Code: Select all

drkns 23.07.2019 19:23:43 +0100 - build 5433

1. VK_DECIMAL не всегда то же самое, что и '.'.

User avatar
DrKnS
Posts: 5419
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 248 times

Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS » Thu 08 Aug, 2019 23:37

Shmuel wrote:
Thu 08 Aug, 2019 23:06
Похоже на это
Раньше было прибито гвоздями, что KEY_ADD, KEY_SUBTRACT, KEY_MULTIPLY, KEY_DIVIDE, KEY_DECIMAL - это + - * / ..
Сейчас берётся тот символ, который туда реально приходит от ОС.
В мапе, используемой в KeyNameToKey, нет сопоставленных символов, поэтому получается 0.
Их туда можно добавить конечно, но если у вас будет какая-то хитрая раскладка, в которой символы другие - фар об этом не узнает.
Если вам нужно ввести конкретные символы - надёжнее всего так и делать: Keys("+ - * / .")

Shmuel
Posts: 5908
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Shmuel » Fri 09 Aug, 2019 01:28

DrKnS wrote:
Thu 08 Aug, 2019 23:37
В мапе, используемой в KeyNameToKey, нет сопоставленных символов, поэтому получается 0.
Их туда можно добавить конечно, но если у вас будет какая-то хитрая раскладка, в которой символы другие - фар об этом не узнает.
Макросы должны имитировать реальные нажатия клавиш. Если я нажимаю на Add в редакторе - печатается +, значит и макрос должен печатать +.

User avatar
DrKnS
Posts: 5419
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 248 times

Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS » Fri 09 Aug, 2019 07:30

Shmuel wrote:
Fri 09 Aug, 2019 01:28
Если я нажимаю на Add в редакторе - печатается +, значит и макрос должен печатать +
Допустим. Что делать с Decimal, который уже сейчас в разных раскладках печатает разное?

Shmuel
Posts: 5908
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Shmuel » Fri 09 Aug, 2019 08:26

Для полноты картины - 2 неразрешённых тикета на багтрекере:
https://bugs.farmanager.com/view.php?id=2275
https://bugs.farmanager.com/view.php?id=2259

Мне кажется, пока не найдено идеальное решение, надо исходить из типичных случаев, а не экзотических. То есть, у подавляющего большинства пользователей на клавише Add нарисован +, значит да, прибьём этот плюс гвоздями. То же касается и Decimal, который у меня сейчас также приходит нулевым байтом (а на клавише нарисована точка, как, полагаю, у 99% участников данного форума.

Ну и как всегда остаётся возможность добавить настройки - для не-русских раскладок, но умолчания оставить какими они были прежде.

User avatar
CDK
Posts: 292
Joined: Thu 28 Apr, 2005 08:28
Has thanked: 9 times
Been thanked: 3 times
Contact:

Глюки и баги, появившиеся в «ночных сборках»

Post by CDK » Fri 09 Aug, 2019 14:59

Shmuel wrote:
Fri 09 Aug, 2019 08:26
То же касается и Decimal, который у меня сейчас также приходит нулевым байтом (а на клавише нарисована точка, как, полагаю, у 99% участников данного форума.
А не правильнее ли, все-таки, из лейаута как-то брать символ? (возможно OemPeriod/Oemcomma)

User avatar
DrKnS
Posts: 5419
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 248 times

Какие символы вводят Decimal, Add, Subtract, Multiply, Divide

Post by DrKnS » Fri 09 Aug, 2019 22:46

Shmuel wrote:
Fri 09 Aug, 2019 08:26
для не-русских раскладок
В них как раз всё ок.
Впрочем, как хотите, 5449.
CDK wrote:
Fri 09 Aug, 2019 14:59
из лейаута как-то брать символ
Консольным приложениям такая роскошь недоступна.

Post Reply

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