Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3126 - 1C77: В не managed режиме окно выбора базы неактивное и не имеет фокуса   Make a simular bug
Summary: 1C77: В не managed режиме окно выбора базы неактивное и не имеет фокуса
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Окна / фокус / перерисовка (show other bugs)
Version: 1.0.9
Hardware: PC All
: P1 normal
Target Milestone: release 1.0.10
Assignee: Svetlana Zhukova
QA Contact: Денис Баранов
URL:
Whiteboard:
Keywords:
Depends on: 3768
Blocks: 5101 42 3119 3240
  Show dependency treegraph
 
In work:
Reported: 2008-12-16 11:31 MSK by Илья Шпигорь
Modified: 2011-09-09 15:34 MSK (History)
5 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Илья Шпигорь 2008-12-16 11:31:18 MSK
При запуске 1с77 окно выбора базы отображается как неактивное и не имеет фокуса ввода. Ввод с клавиатуры идет в консоль.
Comment 1 Илья Шпигорь 2008-12-17 09:53:39 MSK
Выложил патч.

Прблема заключается в том, что окно 1с получает фокус до того, как становится видимым. А X фокус можно передать только окну, у котрого заполненна структура x11drv_win_data. Эта структура заполняется для вновь созданного окна только после того, как оно становитсья видимым. Поэтому окно 1с и не получало X фокус.

Для решения проблемы был добавлен флаг WIN_NEEDS_FOCUS во внутреннюю wine'овскую структуру WND, связанную с окном. Флаг устанавливается при попытке передать фокус невидимому окну.
Comment 2 Денис Баранов 2008-12-18 18:28:14 MSK
commit 9f0724f0f6b589a7cc88069f2d4b55f2e717fd8e не решил проблему. Так же после запуска окно выбора базы неактивно. Приходится тыкать в него мышкой.
Comment 3 Илья Шпигорь 2009-01-15 15:46:27 MSK
Тестировал в бутылке 1c77/1c7727. Под Gnome и KDE ошибка не воспроизвелась.
Comment 4 Александр Пликус 2009-01-15 19:51:36 MSK
Блокирует баг фикс релиз.
Comment 5 Денис Баранов 2009-01-17 16:29:16 MSK
По идее патч был приложен к прошлой сборке, т.е. 
wine-1.0.9-alt39.1
wine-etersoft-sql-1.0.9-alt15
libwine-1.0.9-alt39.1
но там ошибка обнаруживается, через ww ошибки нет. Ждем новую сборку и закрываем.
Comment 6 Andrey Vusik 2009-01-30 13:40:42 MSK
Сборка 40/17
Заявленной проблемы нет.
Comment 7 Илья Шпигорь 2009-06-19 13:22:47 MSD
Бага снова возникла. Сломалось из-за патча на #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)
Comment 8 Илья Шпигорь 2009-06-19 14:14:50 MSD
Выложил патч.

Не managed режим сломался из-за использования GetTickCount вместо GetMessageTime для определения текущего времени в функции XSetInputFocus.

В случае использования GetMessageTime, как в оригинальном wine, в XSetInputFocus уходит значение времени равное 0. Почему-то X-ы это устраивает и окно 1с получает фокус при запуске. Но если режим managed, то ломается передача фокуса между отладчиком и 1с.

Если использовать GetTickCount - ситуация обратная: не managed режим ломается, а передача фокуса отладчик-1с нормально срабатывает.

Решение заключается в проверке на managed режим для выбора функции определения времени - GetTickCount или GetMessageTime.
Comment 9 Денис Баранов 2009-07-16 22:26:34 MSD
Принято.
WINE@Etersoft eter27/eter19
Comment 10 Виталий Перов 2010-09-23 17:09:17 MSD
Откатил патч:

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, заменяющая несколько строчек.
Требуется переделать патч.
Comment 11 Виталий Перов 2010-09-23 17:35:27 MSD
Ещё откатил:

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);" больше нет.
Требуется переделать патч
Comment 12 Константин Кондратюк 2011-09-09 15:06:57 MSK
Нужно проверить наличие баги на eterhack.
Comment 13 Svetlana Zhukova 2011-09-09 15:21:24 MSK
wine@eterhack bottle 1c/bug42
WINE@Etersoft 1.0 SQL 1.3.27/1.7.1-eter1.10/3
c:/Program Files/1Cv77/BIN

Не воспроизвелось.
Comment 14 Svetlana Zhukova 2011-09-09 15:33:49 MSK
managed режим - winecfg -графика -галочка "разрешить менеджеру окон управлять окнами wine"