Summary: | 1с60: Нет меню в ячейке отчёта | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Andrey Vusik <night> |
Component: | Окна / фокус / перерисовка | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | minor | ||
Priority: | P4 | CC: | baraka, regan |
Version: | 1.0.12 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | 13899 | Связано с: | |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 5395 | ||
Attachments: | Скриншот |
Description
Andrey Vusik
2010-04-16 14:39:33 MSD
Created attachment 1653 [details]
Скриншот
> меню редактора поля.
>
Поправка:
Просто редактор поля.
В wwr 1.0.11 работает. Недопроверил... Сломали в 1.0.12-eter4-eter3 В 1.0.12-eter3-eter3 всё работает. Кажется, проблема в фокусе. > Смотреть скриншот: по нажатии по ячейке > правой кнопкой (либо f2) должно появляться > меню редактора поля. Небольшая поправка. Из заявки 13899: > невозможно вызвать так называемую "палитру инструментов", > которая возникает при двойном нажатии на редактируемое полу в виде > дополнительного окна Это меню должно появляться по F2 или двойному нажатию, а не по клику правой кнопкой мыши. Сломалось из-за коммита: commit 211336eb91bd3f5b6fdae48b38531a74017e49db Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Sat Feb 27 15:21:04 2010 +0300 user32: Process page fault exception on the WINPROC_wrapper call through __TRY block (eterbug #2085) Запуск 1с60 в монопольном режиме: wine 1sbw.exe /M Может понадобиться если некорректно завершить работу приложения. Выложил патч. Проблема в том, что WINPROC_wrapper генерирует исключение page fault в 1с60 при вызове меню ячейки. Если обрабатывать это исключение в блоке __TRY - меню не отображается. Если не обрабатывать - приложение не падает и меню корректно создается. Это связано либо с ошибкой в реализации блока __TRY в wine, либо исключение обрабатывается где-то еще. Если обрабатывается где-то еще, то не понятно почему возникает бага #2085, в которой при этом же page fault exception приложение падает. Решение заключается в дополнительной проверке. Если произошло исключение, то с помощью ReadProcessMemory проверяем - доступна ли для чтения виртуальная память, при обращении к которой произошло исключение. Если да вызываем WINPROC_wrapper без обработки исключения. Все работает проверенно в бутылке 1c60/1c60 Принята |