Page 1 of 1

Поведение стрелок Left/Right в диалоге

Posted: Tue 14 Mar, 2017 16:17
by Shmuel

Code: Select all

far.Dialog("", -1, -1, 64, 7, nil, {
  {"DI_DOUBLEBOX",3, 1,60, 5, 0, 0, 0, 0, "test"},
  {"DI_CHECKBOX", 5, 3, 0, 0, 0, 0, 0, 0, "abc" },
  {"DI_BUTTON",  15, 3, 0, 0, 0, 0, 0, 0, "drf" },
  {"DI_CHECKBOX",40, 3, 0, 0, 0, 0, 0, 0, "foo" },
  {"DI_BUTTON",  50, 3, 0, 0, 0, 0, 0, 0, "bar" },
})
При передвижении стрелками вправо/влево фокус перескакивает между чекбоксами, пропуская кнопку. Стрелки вверх/вниз, а также Tab/ShiftTab перемещают фокус без перескоков. Это правильно? (Думаю, что баг, но решил спросить на всякий случай).

Также поведение стрелок влево/вправо кажется странным в диалоге плагина Case Conversion.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 15:14
by DrKnS
Поведение сделано таким намеренно (ищите слово "MinDist" в dialog.cpp), причём так было ещё в 1.65.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 15:32
by Shmuel
Есть ли смысл в таком поведении? (То, что это намеренно и давно, не означает, что так обязательно должно быть).

Исходный вопрос (баг/не баг) был задан не из праздного любопытства, а потому что это выплыло у меня в плагине после очередной модификации диалога и, в общем-то, раздражает. Хотел это исправить в Far, но засомневался, а вдруг это общепринятое поведение, в винде, например.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 16:04
by DrKnS
Я не к тому, что это священная корова и не надо трогать, а к тому, что оно, наверное, что-то полезное делает в некоторых случаях.
Возможно, автор не предполагал, что чекбоксы могут быть между кнопок.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 16:58
by Shmuel
DrKnS wrote: оно, наверное, что-то полезное делает в некоторых случаях
Может и делает.
Но вот сейчас проверил на GUI-диалоге с кнопкой между чекбоксами - поведение кнопок навигации обычное, без перескоков. То есть для данного примера действие кнопки Right идентично действию Tab.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 17:20
by zg
если лечить будете, проверяйте поведение в диалоге выбора цвета. если я правильно помню, это как раз для него.

Поведение стрелок Left/Right в диалоге

Posted: Wed 15 Mar, 2017 20:53
by Shmuel
Сделал только для чекбоксов. Если что-то плохое вылезет - будем думать.