View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002620 | Far Manager | Plugins API.Editor | public | 2014-03-10 12:10 | 2014-03-13 08:23 |
Reporter | 4ekucT | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | x64 | OS | Windows | OS Version | 7 |
Product Version | 3.0 | ||||
Summary | 0002620: Залипшая клавиша Shift при посылке ECTL_PROCESSINPUT | ||||
Description | Когда я обрабатываю нажатие символа '{' в ProcessEditorInputW() и начинаю выполнять более сложную логику с раскрытием скобок и нажатием клавиши ввода через ECTL_PROCESSINPUT (с.м. код выше), то Far похоже начинает все выполнять как будто Shift еще зажат. Потому что если то же самое делать для символа '[' (для его ввода Shift не зажимается), то все работает отлично. Вот нацарапал примерчик, когда при перехвате ввода символа '{' мы пытаемся нажать в редакторе Enter, а получается ShiftEnter и вместо перехода на новую строку получаем вставку в текущую позицию имени редактируемого файла | ||||
Steps To Reproduce | intptr_t WINAPI ProcessEditorInputW(const struct ProcessEditorInputInfo *Info) { if ( (Info->Rec.EventType != KEY_EVENT && Info->Rec.EventType != 0x8001) || Info->Rec.Event.KeyEvent.bKeyDown == 0 ) return (PROCESS_EVENT); if ((Info->Rec.EventType == KEY_EVENT) && (Info->Rec.Event.KeyEvent.uChar.UnicodeChar == L'{')) { INPUT_RECORD tr; tr.EventType = KEY_EVENT; tr.Event.KeyEvent.bKeyDown = true; tr.Event.KeyEvent.wRepeatCount = 1; tr.Event.KeyEvent.wVirtualKeyCode = VK_RETURN; tr.Event.KeyEvent.wVirtualScanCode = 0; tr.Event.KeyEvent.uChar.UnicodeChar = 0; tr.Event.KeyEvent.dwControlKeyState = 0; ::Info.EditorControl (-1, ECTL_PROCESSINPUT, 0, &tr); return IGNORE_EVENT; } return (PROCESS_EVENT); } | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Погонял имеющиеся у меня билды Фара и выяснил, что неисправность эта довольно давняя: * Far 2.0.1807 - работает правильно. * Far 3.0.2346 - ведёт себя аналогично последним билдам. Билд 2346 - самый ранний, который я мог проверить за приемлемое время. Неисправность, наверняка, появилась ещё в более ранних билдах. Область кода в Фаре мне незнакомая, так что будем надеяться, что авторы изменений сами и починят. |
|
http://bugs.farmanager.com/view.php?id=1760 |
|
попробуй 3832. |
|
Накладок с 0000488 не будет? |
|
нет. |