Bug 2845

Summary: 1Cv8: Теряется фокус после выбора наименования при подборе
Product: WINE@Etersoft Reporter: Leonid Shadevsky <leonid>
Component: Окна / фокус / перерисовкаAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: baraka
Version: 1.0.9   
Target Milestone: ---   
Hardware: PC   
OS: All   
URL: http://rt.etersoft.ru/Ticket/Display.html?id=8866
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 2710    

Description Leonid Shadevsky 2008-11-08 16:07:25 MSK
1с 8.0 "Подбор номенклатуры в документе" если выставить галочки в блоке 
"запрашивать", после закрытия формы запроса теряет фокус. 
в в. w@e 1.8 и 1.9 эта форма появляется как отдельное приложение и после 
закрытия фокус не возвращается. (пользователям не удобно набирать, после 
ввода каждой строчки приходится "мышкой" возвращать фокус)
Comment 1 Денис Баранов 2008-11-15 21:08:24 MSK
Когда подбор осуществляется с параметрами запрашивать кол-во, то после ввода фокус не возвращается на список наименований товаров.
Comment 2 Денис Баранов 2008-11-15 21:09:03 MSK
Сборка:
libwine-1.0.9-alt34.1
wine-1.0.9-alt34.1
wine-etersoft-sql-1.0.9-alt0.M41.13
Comment 3 Илья Шпигорь 2008-11-26 13:23:07 MSK
Проблема в функции can_activate_window.

При переключении фокуса с popup окна происходит вызов can_activate_window (по событию WM_TAKE_FOCUS) до того, как главное окно 1С становится enable, по вызову EnableWindow из приложения.

Проверка can_activate_window проходит перед вызовом set_focus, которая передает фокус X-ов окну и вызывает SetForegroundWindow. Если исключить из can_activate_window проверку на enabled возможен случай вызова SetForegroundWindow для disable окна, но это должно проверяться на уровне WinAPI, а передача X-ового фокуса может помочь в подобных случаях.
Comment 4 Илья Шпигорь 2008-11-26 13:38:15 MSK
Выложи хак.

Выключает проверку на disable в функции can_activate_window для 1с8.
Comment 5 Денис Баранов 2008-12-11 17:34:29 MSK
/*Протестировано*\