View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002877 | Wishes | Plugins API.Dialog | public | 2014-12-06 21:33 | 2016-05-11 10:19 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | 3.0 | ||||
Summary | 0002877: DN_LISTHOTKEY в меню | ||||
Description | 1. В момент когда обработчик получает управление курсор уже перемещён на элемент, соответствующий хоткею. Таким образом обработчик получает в Param2 избыточную информацию, и при этом нет возможности выяснить, какой из элементов был текущим в момент нажатия хоткея. 2. Если обработчик вернул значение, то курсор возвращается в исходную позицию, (как до нажатия хоткея). Можно предположить, что делается это для того, чтобы нейтрализовать пункт 1. Однако таким образом обработчик лишён нормальной возможности произвольно изменить позицию курсора. Предлагаю убрать эти автоманипуляции с курсором. Или же, если перечисленные особенности чем-то обусловлены, то необходимо их документировать. | ||||
Steps To Reproduce | local F = far.Flags Event { group="DialogEvent"; condition=function(Event,param) return param.Msg==F.DN_LISTHOTKEY and Event==F.DE_DLGPROCINIT end; action=function(Event,param) far.Show(1) param.hDlg:send(F.DM_LISTSETCURPOS,param.Param1,{SelectPos=5}) far.Show(2) return 1 end; } | ||||
Additional Information | http://api.farmanager.com/ru/dialogapi/dmsg/dn_listhotkey.html http://forum.farmanager.com/viewtopic.php?p=126227#p126227 | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Пункт 2 исправлен в билде 4640 |
|
[quote=dn_listhotkey] Событие DN_LISTHOTKEY оповещает обработчик о том, что пользователь для смены пункта в списке (DI_COMBOBOX, DI_LISTBOX) воспользовался горячими клавишами. ... Return FALSE - разрешить изменение. TRUE - плагин сам отработал событие.[/quote] 1. Из данного текста складывается впечатление, что обработчик сработает до смены позиции, и вернув TRUE можно избежать позиционирования. В реальности это не так. То ли поведение стоит уточнить, то ли документацию. 2. Возможно я неправильно понял, но в следующем примере я не вижу разницы в поведении, возвращая TRUE или FALSE.
В обоих случая поведение получается одинаковым, например в меню плагинов по хоткеям не происходит выполнения пунктов, а только лишь позиционирование. |
|
у меня в листбоксах и комбобоксах в диалогах всё согласно документации. |
|
Да, был неправ.. Прошу переименовать тикет: "DN_LISTHOTKEY в меню", и переместить в проект "Wishes" |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-12-06 21:33 | JohnDoe | New Issue | |
2016-05-09 23:35 | JohnDoe | Note Added: 0014538 | |
2016-05-09 23:51 | JohnDoe | Note Added: 0014539 | |
2016-05-10 12:29 | zg | Note Added: 0014540 | |
2016-05-11 08:59 | JohnDoe | Note Added: 0014542 | |
2016-05-11 10:18 | 2useven10 | Category | Plugins API.Dialog => _Common |
2016-05-11 10:18 | 2useven10 | Summary | DN_LISTHOTKEY: недокументированные особенности => DN_LISTHOTKEY в меню |
2016-05-11 10:18 | 2useven10 | Project | Far Manager => Wishes |
2016-05-11 10:19 | 2useven10 | Category | _Common => Plugins API.Dialog |