Bug 6585

Summary: regedit: Не появляется меню в правой части окна
Product: WINE@Etersoft Reporter: Александр Морозов <amorozov>
Component: КонтролыAssignee: Роман Дадьков <cunning>
Status: CLOSED FIXED QA Contact: Денис Баранов <baraka>
Severity: normal    
Priority: P3 CC: baraka, lav, vitperov
Version: 2.0   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 42, 5101, 6433    

Description Александр Морозов 2010-12-02 16:48:11 MSK
В eterhack в правой части окна regedit не появляется меню при щелчке правой кнопкой мыши. Должны появляться меню при щелчке на пустом поле и при щелчке на строке с параметром реестра.
Comment 1 Виталий Перов 2010-12-06 18:36:33 MSK
Как должно работать можно посмотреть на eter-1.0.12
Comment 2 Роман Дадьков 2010-12-13 17:15:43 MSK
/
Comment 3 Роман Дадьков 2010-12-13 21:23:55 MSK
начал искать проблему
Comment 4 Роман Дадьков 2010-12-16 19:36:03 MSK
Виталий, а что за окно regedit?
Comment 5 Александр Морозов 2010-12-16 19:50:46 MSK
> Виталий, а что за окно regedit?
Это окно, появляющееся при запуске входящей в состав wine программы regedit
Comment 6 Роман Дадьков 2010-12-16 21:04:37 MSK
загрузил eterhack, собрал wine, запустил regedit, меню не появляется
Comment 7 Роман Дадьков 2010-12-17 21:20:21 MSK
пока не нашел в чем проблема
Comment 8 Роман Дадьков 2010-12-24 18:40:36 MSK
ветка eterahck  отсутствует
Comment 9 Александр Морозов 2010-12-24 18:55:47 MSK
Ничего с веткой не случилось. Ты что-то не так делаешь.

git clone git.office:/projects/eterhack.git wine-eterhack
cd wine-eterhack
git checkout -b eterhack origin/eterhack
Comment 10 Роман Дадьков 2010-12-24 20:03:15 MSK
за неимением ветки eter-1.0.12 собрал pure, посмотрю там код процедуры создания меню и переделаю в eterhack
Comment 11 Роман Дадьков 2010-12-25 22:56:15 MSK
ошибка в модуле user32, вероятнее всего файле menu.o и controls.h
Comment 12 Роман Дадьков 2010-12-26 18:21:49 MSK
проблема найдена в файле win.c неправильно память очищалась
в файле controls.h в функции NC_DrawSysButton не хватало параметра
Comment 13 Vitaly Lipatov 2010-12-29 16:36:46 MSK
(В ответ на comment #12)
> проблема найдена в файле win.c неправильно память очищалась
Тут стоило написать: надо было так, а было - так.

> в файле controls.h в функции NC_DrawSysButton не хватало параметра
Там не может не хватать параметра. Для очевидности, стоило написать, какого параметра не хватало.
Comment 14 Vitaly Lipatov 2010-12-29 17:37:41 MSK
(В ответ на comment #13)
> > в файле controls.h в функции NC_DrawSysButton не хватало параметра
> Там не может не хватать параметра. Для очевидности, стоило написать, какого
...
Ах вот оно что...

commit 0c2760cb4fb7f8bcb457c4f992900d576b1f40c5
Author: Ilya Shpigor <shpigor@etersoft.ru>
Date:   Mon Dec 8 12:51:23 2008 +0300

    user32: Delete unusable function parameter and calls for NC_DrawSysButton

[17:29:34] <Ilya Shpigor> Мне показалось, что некоторые вызовы этой функции лишние. Кроме того один из входных параметров не использовался.
В контексте сворачивания mdi окон делалось
В win98 у mdi окна всегда есть системные кнопки, не зависимо свернуто оно или нет. Сейчас в wine у свернутого окна системные кнопки не отображаются, поэтому этот "лишний" параметр и нужен.
Comment 15 Vitaly Lipatov 2010-12-29 18:16:01 MSK
Проблема внесена при мерже коммита
commit 894a5cc118770d41390746f6d607809e01b0bf5f
Author: Константин Кондратюк <kondratyuk@builder.office.etersoft.ru>
Date:   Tue Apr 8 13:05:36 2008 +0400

    Use a non-unicode handler for V8Window class (eterbug #432)

Причём об этом предупреждал компилятор:
win.c:2240:13: warning: passing argument 2 of ‘WINPROC_AllocProc’ makes integer from pointer without a cast

Теперь в WINPROC_AllocProc второй параметр — unicode флаг.

Исправлено в сборке build 1.3.10-alt2, коммит
commit 36400dff7869d6a7a2d9867f4122a67ae67b240b
Author: Vitaly Lipatov <lav@etersoft.ru>
Date:   Wed Dec 29 18:09:10 2010 +0300
Comment 16 Денис Баранов 2011-01-03 19:18:40 MSK
Принято.
wine-etersoft-school-1.7.0-alt4
wine-etersoft-1.7.0-alt1
Comment 17 Виталий Перов 2011-07-29 18:22:14 MSK
Откатил патч:
commit 36400dff7869d6a7a2d9867f4122a67ae67b240b
Author: Vitaly Lipatov <lav@etersoft.ru>
Date:   Wed Dec 29 18:09:10 2010 +0300

    fix WINPROC_AllocProc args (eterbug #6585), it broke regedit right menu

Из-за него возникает проблема с установкой Гаранта (бага 7435).

Прошу переделать патч, и убедится, что он не ломает установку Гаранта.
Comment 18 Виталий Перов 2011-07-29 19:12:57 MSK
Также откатил патч из репозитория eterwine.

Новый патч можно проверять на eterhack, но отправить нужно в eterwine
Comment 19 Виталий Перов 2011-07-29 20:57:38 MSK
Откатил все наши изменения в этом файле.
Для окончательного решения завёл отдельную багу 7489.
Сейчас regedit работает.