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

Отработанное время:
Продуктивное время:
Bug 37 - 1Cv77: Неправильно реагирует на Esc при подтверждении выхода   Make a simular bug
Summary: 1Cv77: Неправильно реагирует на Esc при подтверждении выхода
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Окна / фокус / перерисовка (show other bugs)
Version: unspecified
Hardware: PC Linux
: P2 normal
Target Milestone: ---
Assignee: Анатолий Лютин
QA Contact: Vitaly Lipatov
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 42 71 190
  Show dependency treegraph
 
In work:
Reported: 2006-03-04 19:06 MSK by Vitaly Lipatov
Modified: 2008-08-25 22:17 MSD (History)
2 users (show)

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


Attachments
Тест для проверки неадекватности окошка. (6.79 KB, application/octet-stream)
2010-11-18 03:58 MSK, Vitaly Lipatov
Details
Исправление общей ошибки для Диалоговых окон (743 bytes, patch)
2010-11-18 03:58 MSK, Кирилл Маргорин
Details | Diff
Исправление ошибки для MessageBox (1.42 KB, patch)
2010-11-18 03:58 MSK, Кирилл Маргорин
Details | Diff
Отрубаем esc для окон где нет "Крестика" (1.03 KB, patch)
2010-11-18 03:58 MSK, Анатолий Лютин
Details | Diff
Снимаем "Крестик" с окон у которых в windows "Крестик" заблокирован (1.67 KB, patch)
2010-11-18 03:58 MSK, Анатолий Лютин
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2006-03-04 19:06:30 MSK
При выходе из бухгалтерской конфигурации открывается окно подтверждения 
"Вы действительно хотите выйти?" 
В Windows оно не реагирует на Esc, в WINE - ESC действует "OK".
Comment 1 Vitaly Lipatov 2006-03-04 19:07:19 MSK
Наверное проблемы лежат рядом. 
Comment 2 Vitaly Lipatov 2006-03-04 19:09:07 MSK
Вот код на языке 1С, формирующий вопрос: 
Если Вопрос("Закончить работу с программой?", "Да+Нет", 60)="Нет" Тогда 
       СтатусВозврата(0); 
       Возврат; 
КонецЕсли; 
 
Comment 3 Vitaly Lipatov 2006-03-04 19:13:17 MSK
Created attachment 4 [details]
Тест для проверки неадекватности окошка.
Comment 4 Vitaly Lipatov 2006-03-04 19:28:23 MSK
Да, в WINE нажатие Esc (как и крестика на окне) формирует код возврата функции 
Вопрос такой: 
"2 или 'Отмена' ('Cancel'), если нажата кнопка Отмена;" 
 
А, почти всё понятно: В виндах это окошко имеет крестик (X) заблокированным, и 
соответственно на Esc не реагирует. 
Comment 5 Кирилл Маргорин 2006-03-15 14:34:21 MSK
Created attachment 7 [details]
Исправление общей ошибки для Диалоговых окон

шсправление общей ошибки для Диалоговых окон: При отсутсвии стиля WS_SYSMENU
окно не должно реагировать на кнопку Escape.
Comment 6 Кирилл Маргорин 2006-03-15 14:35:42 MSK
Created attachment 8 [details]
Исправление ошибки для MessageBox

Диалоги MessageBox, в которых не используется кнопка Cancel (за исключением
окна MB_OK) должны создаваться без флага WS_SYSMENU.
Comment 7 Кирилл Маргорин 2006-03-15 14:36:32 MSK
Зависимости от ошибки #34 нет.
Comment 8 Vitaly Lipatov 2006-04-22 22:24:06 MSD
Проверить соответствие кнопок на окне с оригиналом, исправить 
dialog_window1.patch  
Comment 9 Vitaly Lipatov 2006-12-12 21:21:12 MSK
Проблема осталась в W@E 1.0.5
К сожалению, данное решение портит другие окна. Надо смотреть пристальнее.
Comment 10 Анатолий Лютин 2006-12-23 16:37:33 MSK
Created attachment 81 [details]
Отрубаем esc для окон где нет "Крестика"
Comment 11 Анатолий Лютин 2006-12-23 16:38:32 MSK
Created attachment 82 [details]
Снимаем "Крестик" с окон у которых в windows "Крестик" заблокирован
Comment 12 Анатолий Лютин 2006-12-23 16:39:40 MSK
Теперь все вроде работает корректно. Нужны тесты.
Comment 13 Vitaly Lipatov 2006-12-23 18:32:57 MSK
Проблем вроде нет, но общее рассуждение такое:
нельзя отключать реакцию на нажатие Esc (в любом случае он должен вызывать событие, потому на него может быть повешено любое действие). Другое дело что окно, которое не должно это делать, не должно реагировать на IDC_CANCEL.
Проблема, описанная в баге 71, может вылезти непредсказуемо в каком-то месте.
Comment 14 Vitaly Lipatov 2006-12-23 18:35:15 MSK
Например, если в 1С создать документ, а потом нажать Esc, то откроется окно подтверждения. И в нём Esc уже не работает. А должен.
Comment 15 Vitaly Lipatov 2006-12-23 18:38:04 MSK
Пока не буду прикладывать исправление для этой баги. Сперва надо разобраться со всеми диалогами и в правильном месте сделать исправление.
При таком важном исправлении нужно проверять _все_ диалоги.
Да, и пора осваивать встроенную систему тестов в WINE.
Comment 16 Анатолий Лютин 2006-12-25 21:19:32 MSK
Новый патч готов. 
Название:user32-msgbox-cross.patch