Элемент с DIF_DISABLE получает фокус, если он первый (и единственный фокусируемый)

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

Элемент с DIF_DISABLE получает фокус, если он первый (и единственный фокусируемый)

Post by John Doe »

Наткнулся на странный эффект: если первый элемент диалога задан с флагом DIF_DISABLE, и других элементов, принимающих фокус ввода, в диалоге нет, то первый элемент всё-таки получает фокус: реагирует на клавиатуру, и генерирует все сопутствующие события.
Не баг ли это?

Code: Select all

local F = far.Flags
local items = {
  {"DI_LISTBOX",3,1,16,4,{{Text="&atext"},{Text="&btext"},{Text="&ctext"}},nil,nil,{DIF_DISABLE=1,DIF_LISTNOAMPERSAND=1}},
  {"DI_TEXT",4,5,16,5,0,nil,nil,0,"&text"},
}
far.Dialog("",0,0,19,6,nil,items,0,function(hDlg,Msg,...)
  if Msg==F.DN_LISTHOTKEY or Msg==F.DN_HOTKEY then far.Show(...) end
end)
(в примере листбокс, но то же самое происходит и с DI_EDIT)

Если в таком диалоге нажать Tab, то фар виснет.

Update: http://bugs.farmanager.com/view.php?id=3059
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Элемент с DIF_DISABLE получает фокус, если он первый (и единственный фокусируемый)

Post by DrKnS »

Багтрекер же есть.
Post Reply

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