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

Отработанное время:
Продуктивное время:
Bug 729 - Меню в 1С 8.0   Make a simular bug
Summary: Меню в 1С 8.0
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Графика GDI / DIB / GDIPLUS (show other bugs)
Version: 1.0.8
Hardware: PC Linux
: P5 normal
Target Milestone: ---
Assignee: Анатолий Лютин
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 437 150 766 777 2808 7468
  Show dependency treegraph
 
In work:
Reported: 2007-08-31 15:05 MSD by Константин Кондратюк
Modified: 2011-07-21 15:59 MSK (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Константин Кондратюк 2007-08-31 15:05:20 MSD
Сборка 20070830.
Меню в 1С 8.0 живёт своей жизнью. При переключении окна 1С на другое, оно остаётся на экране, его пункты активны и работают. 
Также при перемещении курсора на соседнюю позицию (в строке главного меню) меню закрывается. Для того, чтобы открыть пункт, нужно нажать ещё раз.

В 1.0.7 такого не было.
Comment 1 Анатолий Лютин 2007-09-04 15:46:51 MSD
Cинтезировал. В оригинальном Вайне такая же проблема.
Comment 2 Анатолий Лютин 2007-09-04 16:45:09 MSD
Проблема в том, что GetMenu() при переводе мышкой на соседнее меню возвращает не его дескриптор, а null.
Comment 3 Анатолий Лютин 2007-09-04 16:50:01 MSD
Нашёл основную проблему. 
Во-первых:когда отключено управление окнами менеджером, то всё работает.
Во-вторых: главный глюк - когда нажимаешься на меню в 1с 8.0, то от главного окна уходит свойство активности и фокус, и поэтому меню не может найти соседнее. Из-за этого меню похоже и жило в 1.0.7 своей жизнью.

А null возвращает и при запуске под 1.0.7. Значит в 1с реализована нестандартное поведение меню.
Comment 4 Анатолий Лютин 2007-09-06 16:51:58 MSD
Пока исправил так, чтобы при создании всплывающего окна (через create_whole_window) не вызвалась set_initial_wm_hints(). Теперь при переключении одного меню на другое всё нормально, но 1с-ка мигает как новогодняя ёлка, т.к. уходит статус activate.
Comment 5 Анатолий Лютин 2007-09-07 12:27:44 MSD
Проблема в том, меню в 1с 8.0 создаётяс отдельным окном, т.е. меню реализованно не средствами WinApi, а обрабатывается внутри 1с. Из-за этого и проблема с миганием - т.к. создаётся отдельное окно (когда кликаем на любую кнопку меню) wine передаёт управление этому окну оконному менеджеру из-за этого к нему уходит и фокус и активность, а должен уходить только фокус. Из-за этого и проблема с тем, что меню "живёт своей жизнью". Возможный вариант решения - запретить wine управлять такими окнами.
Comment 6 Анатолий Лютин 2007-09-07 17:30:56 MSD
Исправил проблему с переключением активности окна. Сейчас ситуация такая же как в 1.0.7n, правда я откатил не все изменения сделанные вайновцами, а только те строчки, что критичны для нас.
Меню опять работает само по себе, надо будет детально разобраться и закрыть эту багу, главное то, что есть функциональность.

Формирую пока патч.
Comment 7 Анатолий Лютин 2007-09-11 15:19:49 MSD
Предыдущая версия влияла на 1с7.0. Исправил.
Comment 8 Анатолий Лютин 2007-09-13 13:52:08 MSD
Ещё этот патч влияет на поведение меню в 1с.7.7 - начинает жить "своей" жизнью.
Comment 9 Анатолий Лютин 2007-09-13 19:41:19 MSD
Влияние оказывал не этот патч,а user32-focus-manage.c. 
Создал патч, который убирает проблему, которая была в 1.0.7n (winex11.drv-event-menu.patch).
Прикладываю в лист. Ошибку закрываю.
Comment 10 Анатолий Лютин 2007-09-13 19:41:36 MSD
Влияние оказывал не этот патч,а user32-focus-manage.c. 
Создал патч, который убирает проблему, которая была в 1.0.7n (winex11.drv-event-menu.patch).
Прикладываю в лист. Ошибку закрываю.
Comment 11 Анатолий Лютин 2008-02-20 19:50:43 MSK
Благодаря Джулиарду на новых исходниках эта бага снова с нами.
Comment 12 Анатолий Лютин 2008-02-29 17:19:53 MSK
Единсвенная ошибка что пока осталось - это мигание.
Comment 13 Анатолий Лютин 2008-03-05 23:05:03 MSK
Вывод из-под управления - не вариант, т.к. отваливает хак на 150 багу. Конечно жаль, что у нас такие проблемы с обработкой окон x-овым драйвером.
Comment 14 Анатолий Лютин 2008-03-14 23:25:36 MSK
Исправил по-другому хак к 150 ошибке (более корректно). Теперь можно вывести окна меню из-под управления. Во вторник всё проверю, пересмотрю патчи и закрою багу.
Comment 15 Анатолий Лютин 2008-03-19 17:41:29 MSK
Обновился до новых исходников, меню в 1с 8.0/8.1 работает вполне сносно - никуда не пропадает, открываются все подпункты, ничего особо не мигает.

Замечен только один баг - когда открываем второй подпункт - уходит активность из окна, хотя фокус остатаётся. Поэтому считаю, что багу можно закрыть. Все необходимые патчи в patches-list вроде приложил.