При запуске 1с77 окно выбора базы отображается как неактивное и не имеет фокуса ввода. Ввод с клавиатуры идет в консоль.
Выложил патч. Прблема заключается в том, что окно 1с получает фокус до того, как становится видимым. А X фокус можно передать только окну, у котрого заполненна структура x11drv_win_data. Эта структура заполняется для вновь созданного окна только после того, как оно становитсья видимым. Поэтому окно 1с и не получало X фокус. Для решения проблемы был добавлен флаг WIN_NEEDS_FOCUS во внутреннюю wine'овскую структуру WND, связанную с окном. Флаг устанавливается при попытке передать фокус невидимому окну.
commit 9f0724f0f6b589a7cc88069f2d4b55f2e717fd8e не решил проблему. Так же после запуска окно выбора базы неактивно. Приходится тыкать в него мышкой.
Тестировал в бутылке 1c77/1c7727. Под Gnome и KDE ошибка не воспроизвелась.
Блокирует баг фикс релиз.
По идее патч был приложен к прошлой сборке, т.е. wine-1.0.9-alt39.1 wine-etersoft-sql-1.0.9-alt15 libwine-1.0.9-alt39.1 но там ошибка обнаруживается, через ww ошибки нет. Ждем новую сборку и закрываем.
Сборка 40/17 Заявленной проблемы нет.
Бага снова возникла. Сломалось из-за патча на #3768: commit 500c1c22c572ecf9db15e98fd29a975af647fd53 Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Thu Apr 9 16:06:08 2009 +0400 winex11.drv: Using GetTickCount for XSetInputFocus instead the GetMessageTime (eterbug #3768)
Выложил патч. Не managed режим сломался из-за использования GetTickCount вместо GetMessageTime для определения текущего времени в функции XSetInputFocus. В случае использования GetMessageTime, как в оригинальном wine, в XSetInputFocus уходит значение времени равное 0. Почему-то X-ы это устраивает и окно 1с получает фокус при запуске. Но если режим managed, то ломается передача фокуса между отладчиком и 1с. Если использовать GetTickCount - ситуация обратная: не managed режим ломается, а передача фокуса отладчик-1с нормально срабатывает. Решение заключается в проверке на managed режим для выбора функции определения времени - GetTickCount или GetMessageTime.
Принято. WINE@Etersoft eter27/eter19
Откатил патч: commit 9f0724f0f6b589a7cc88069f2d4b55f2e717fd8e Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Tue Dec 16 15:19:30 2008 +0300 user32: Add the WIN_NEEDS_FOCUS flag for delayed setting focus (eterbug #3126) Теперь в этом месте вызывается функция WIN_GetRectangles, заменяющая несколько строчек. Требуется переделать патч.
Ещё откатил: commit acccb04bebaad88b41bed227661b11c8c0a82503 Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Wed Jan 21 13:25:36 2009 +0300 user32: Using X11DRV_SetFocus instead SetFocus for delayed setting focus (eterbug #3126) Строки "if (focus) SetFocus(hwnd);" больше нет. Требуется переделать патч
Нужно проверить наличие баги на eterhack.
wine@eterhack bottle 1c/bug42 WINE@Etersoft 1.0 SQL 1.3.27/1.7.1-eter1.10/3 c:/Program Files/1Cv77/BIN Не воспроизвелось.
managed режим - winecfg -графика -галочка "разрешить менеджеру окон управлять окнами wine"