$ rpm -q wine wine-20070118-alt1 После закрытия и открытия окон в программе главное меню перестаёт реагировать на нажатия, а после сворачивания/разворачивания главного окна, главное меню в нём пропадает.
Временно исправлено в 1.0.6, проверить для 1.0.7
Выяснено следующее: После некоторого времени работы возникает err:local:LOCAL_GetBlock not enough space in USER heap 10d7 for 80 bytes (кончается память, используемая для выделения хэндлов) Из-за этого идут обращения к MENU_GetMenu с null в параметре. Из-за нехватки хэндлов начинаются проблемы с меню, а на непатченном wine - переполнение стека в MENU_FindItem. Явным образом с menu.c это не связано, скорее всего особенности внешнего использования (со стороны MDI).
Последний комментарий не сюда. Меню пропадает из-за последнего патча Дмитрия по поводу MDI.
*** Bug 669 has been marked as a duplicate of this bug. ***
В вайне пока можно выделить не больше 1000 хэндлов из-за того, что они выделяются 16-битным LOCAL_Alloc. В винде можно выделить около 10000. Сделал так чтобы хэнды выделялись в куче. Теперь такой ошибки впринципе не должно возникнуть.
Из-за этого стали падать программы, написанные под Win 3.1 (CardReader) при обращению по menu.Неактуально.
не убирается меню "действия", т.е при открытии 1с его нет, далее открываем главный журнал оно появляется, закрываем остается ! И все ;-) ubuntu 7.10 $ uname -a Linux user-laptop 2.6.22-14-generic #1 SMP Sun Oct 14 21:45:15 GMT 2007 x86_64 GNU/Linux amd64 (не думаю, что от этого сильно зависит так же и в 32) WINE@Etersoft 1.0 SQL (1.0.8) wine20071130
Да, ошибка с меню, связанными с модальными окнами, остаётся. Но это не влияет на функциональность.
На 1.0.9-eter29 не воспроизводится, меню Действия убирается.
Откатил патч: commit 569f02a9eaf5ab579f4b330a777da1d1de7308d5 Author: Anatoly Lyutin <vostok@etersoft.ru> Date: Mon Apr 28 16:23:45 2008 +0400 Fix problem with handles in menu мешает коммит: commit db79a9f2e9a5f4d82c0a910fd92ce8449cdf74e3 Author: Alexandre Julliard <julliard@winehq.org> Date: Mon Oct 12 14:30:34 2009 +0200 user32: Use client-side user handles for menus. вносящий существенное изменение Требуется: 1) Проверить актуальна ли данная бага. Возможно мешающий коммит из pure решает проблему 2) Если нужно, переписать патч.
В pure wine была проделана колоссальная работа по рефакторингу кода, связанного с 16-битными приложениями. Есть мнение, что хак не нужен. Но если таки патч от Джуллиарда не решит проблему, то переписать хак не сложно - он очень простой. Если я помню правильно, то изменение заключается в том, что там хендлы берутся не из какого-то левого, заранее определённого пула, а выделяются mem alloc-ом по необходимости.
Проблемы нет ни в текущем 1.0.12-eter8.11/18 ни в eterhack