View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002582 | Far Manager | Plugins API.Dialog | public | 2014-01-28 10:49 | 2014-01-30 16:50 |
| Reporter | JohnDoe | Assigned To | lort | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Product Version | 3.0 | ||||
| Summary | 0002582: DM_GETDROPDOWNOPENED не работает в раскрытом списке истории поля ввода | ||||
| Description | Для истории всегда возвращается 0. Для комбобокса этой проблемы нет. | ||||
| Steps To Reproduce | Macro { description="bug"; area="UserMenu MainMenu Menu Dialog DialogAutoCompletion"; key="F1"; action=function() local hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id local info = far.SendDlgMessage (hDlg, "DM_GETDROPDOWNOPENED") far.Show(info) end; } | ||||
| Additional Information | Очевидно с этим же связана проблема с макросвойством Dlg.ItemType: не определяется выбор из истории поля ввода (0x8004) Вместо этого всегда возвращается 4 http://api.farmanager.com/ru/macro/macrocmd/prop_func/dialog.html#Dlg.ItemType | ||||
| Tags | No tags attached. | ||||
| Build | |||||
|
|
Вероятно на открытый список автодополнения тоже надо реагировать. Возможно возвращаемое значение должно зависеть от типа открытого списка. |
|
|
Выпадающий список истории представляет собой отдельный диалог, со своим hDlg. Я предположил что DM_GETDROPDOWNOPENED надо посылать не в диалог истории, а в исходный диалог. Но нет, так тоже не работает. Macro { description="bug"; area="UserMenu MainMenu Menu Dialog DialogAutoCompletion"; key="F1"; action=function() local hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id local id = far.SendDlgMessage (hDlg, "DM_GETFOCUS") --local info = far.SendDlgMessage (hDlg, "DM_SETDROPDOWNOPENED",id,1) Keys "CtrlDown" local info = far.SendDlgMessage (hDlg, "DM_GETDROPDOWNOPENED") far.Show(info) end; } Запускать в любом диалоге, установив курсор в любое поле ввода. |
|
|
сломано в build 2897. нужный код закоментирован без объяснения причин. |