Summary: | Окно 1с в wine@etersoft всегда на переднем плане | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Боренко Денис <denis> |
Component: | Окна / фокус / перерисовка | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | normal | ||
Priority: | P3 | CC: | kondratyuk, lav, shpigor |
Version: | 1.0.10 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 3024, 3589, 3768, 7469 | ||
Attachments: | Пример обработки |
Description
Боренко Денис
2009-05-21 07:26:15 MSD
Версия 1с у Вас 7 и среда рабочего стола - Gnome? Да, все именно так. Не могли бы Вы прислать пример обработки в виде .ert файла, при которой проявляется данная проблема? Created attachment 1193 [details]
Пример обработки
На локальной базе добиться не смог (возможно потому, что слишком быстро выполняется), по cifs наблюдается железно, можно просто смотреть в меню окна -- галка сама появляется и исчезает. Обработка используется в бухгалтерии. Нужно выбрать длительный период и нажать кнопку "Книга покупок". Время обработки должно быть не менее минуты, а то можно не поймать эффект. Пока экспериментировал заметил, что свойство окна не просто ставится, оно через 5-10 сек и снимается само. Вообще-то, то что wine пытается установить флаг always on top - это нормально. С помощью этого решается бага #3768, когда необходимо поднять на передний план окно другого процесса. Не понятно почему этот флаг устанавливается при обработке. По идее, это должно происходит только при передачи фокуса X-овому окну. Снятие флага должно происходить при потере фокуса. (In reply to comment #6) > Вообще-то, то что wine пытается установить > флаг always on top - это нормально. С помощью > этого решается бага #3768, когда необходимо > поднять на передний план окно другого > процесса. А нельзя сделать ключ/переменную окружения отключающую выставление этого флага? Приведенная бага -- одна из многих из чехарды с окнами. Просто ее мне удалось локализовать и повторить. Есть еще куча всяких. Например при попытке переключиться мышью на окно лежащее за 1С фокус иногда фокус переходит, а 1С наверху. Пока по заголовку или меню нужного приложения не щелкнешь приложение наверх не поднимается. Или вот когда печатаешь. Вылетает окно "Печатается" с кнопкой "Отменить" -- и всегда поднимает окно 1С наверх. Вообще -- стало плохо. И фиг с ним с отладчиком и конфигуратором. В обычном режиме работать стало не удобно. (In reply to comment #7) > И фиг с ним с отладчиком и конфигуратором. В > обычном режиме работать стало не удобно. Мне тоже кажется, что фокус в последнее время очень навязчиво работает, выдвигая окна приложения тогда, когда их совсем не ждёшь. (In reply to comment #7) > Или вот когда печатаешь. Вылетает окно > "Печатается" с кнопкой "Отменить" -- и всегда > поднимает окно 1С наверх. Делал долгую обработку, после завершения она выдала маленькое окошечко что завершилась, окошко на передний план поднялось, но самой 1С было не видно. Как только нажал ОК, то главное окно тоже поднялось. Удалось воспроизвести в бутылке похожую ситуацию: 1) бутылка 1c77/1c7727 2) открыть обработку C:\tmp\speedtest3.ert 3) "Сформировать" и переключится на другое X-овое окно Результат - по окончании формирования отчета окно 1с поднимается на передний план. У меня наблюдается не только по окончанию обработки, но и в процессе. Причем, если включен visual bell видно, что окно мигает в момент подъема. Хорошо наблюдать на сетевой базе, если в обработке идет интенсивное обращение к данным. Выложил патч. Проблема заключается в том, что 1с в процессе обработки может передавать фокус между своими mdi и popup окнами. В результате X-овое окно приложение также получает фокус. Вероятно, именно по этой передаче и происходит постоянное поднятие окна приложения. Решение заключается в добавлении флага, который взводится если окно Wine потеряло фокус и активно другое X-овое окно. Пока флаг взведен попытки Wine передать X-овый фокус своему окну и поднять его игнорируются. Флаг сбрасывается как только любое окно Wine получает фокус. > любое окно Wine получает фокус.
Мне кажется, плохое решение. Ибо также задолбало постоянное состязание запущеных 1с между собой.
Может предусмотреть возможность отключения механизма подъема окон? Реально он нужен только в конфигураторе.
PS. Последнее время бага уже более чем достала...
Хорошо. Тогда можно сделать так - по умолчанию этот механизм подъема отключен. Если кому-то он очень понадобится, его можно будет включить переменной окружения. Шоколадно. Выложил TRY 2 патча. Теперь чтобы включить механизм подъема окон необходимо задать переменную среды WINEENABLERAISE. Запуск программы будет выглядеть например так: WINEENABLERAISE=1 wine 1cv7.exe Принято. WINE@Etersoft 1.0.12 eter5/eter4 |