Summary: | 1Cv77: Не запоминается развёрнутость окон 1С и не восстанавливаются свёрнутые | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
Component: | Окна / фокус / перерисовка | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | Vitaly Lipatov <lav> |
Severity: | critical | ||
Priority: | P3 | CC: | baraka, vostok |
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 50, 90 | ||
Bug Blocks: | 35, 42, 120, 760, 777, 1010 | ||
Attachments: |
Образец реализации в gtk
Тест на TopLevel окна (GetWindowPlacement) Схема переходов и состояний окна |
Description
Vitaly Lipatov
2006-04-19 17:06:21 MSD
Скорее всего это связано с отключенным хранением информации о вкладках 1. Запускаем бухгалтерию 2. Разворачиваем на весь экран 3. Делаем сальдовку 4. Разворачиваем на весь экран 5. Закрываем 1С - всю сразу 6. повторить 1..3 Результат - нет верхней части подокна сальдовки - вместе с кнопками _X[ ] В определенный момент в одной из печатных форм (максимизированных?) блокируется кнопка [X] окна. При этом кнопка Max-Restore остается доступной, но не реагирует на нажатия. Т.е. окно перестает максимизироваться-восстанавливаться (хотя и минимизируется. Пользователи говорят - после этого ч-з непродолжительное время 1С вешается. Поэтому Серъезность считаю нужным повысить до major. последний комментарий не совсем к этой баге (перевесил на #50) При этом после повторного открытия программы и любого окна в ней, которое было максимизировано, кнопки окна "исчезают". Кнопки "исчезают", потому что окно не максимизировано сейчас, имея размер максимизированного. Внизу и справа при этом появляются полосы прокрутки. Продвинув окно можно увидеть кнопки. эти данные записаны в реестре <hostname>/HKCU/Software/1C/1Cv7/7.7/<dbname>/V7/<username>/Windows/<windowname> Eugene Pivnev 2 мая 2006 14:49:47 Работаем с окном ОСВР (оборотка). что запоминается в реестре в w2ks: 1. делаем оборотку, НЕмаксимизируем, закрываем 1С: 0,1,-1,-1,-4,-23,60,23,904,404 2. п.1., но - Максимизируем: 2,3,-1,-1,-4,-23,60,23,904,404 Последние 4 числа - это X0, Y0, X1, Y1 Перед ними 4 - тоже какие-то координаты, где участвуют - не в курсе (возможно - описание границ печати) Первые 2 - это, собсно, статус окна. при максимизированном там стоит 2,3 При всем при этом восстанавливается до немакс-ного размера (последние 4 числа) Теперь wine: 0,1,-1,-1,-4,-23,64,27,704,467 0,1,-1,-1,-4,-23,-4,-23,1028,568 Глюков - 2 шт: 1. не запоминается статус "Макс" (но это можно и задвинуть) 2. координаты окна списываются максимизированные Судя по всему, падает как раз из-за этого. Сегодня попросил бухгалтера (у которой падает по 20 раз на день) НЕ максимизировать окна. Говорит - вроде бы нормально всё, не падало. IMHO, СРОЧНО это надо решить. А то терпение испытательного полигона лопнет - и не на ком будет пробовать (в таких масштабах). http://www.unix.org.ua/press/skpress/pc_mag/69613.htm http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowfeatures.asp Проблема связана с реализацией GetWindowPlacement, в режиме Managed=Y (is_window_managed()==TRUE) не работает вообще (определение максимизированности). Вот бага об этом в багзилле WINE: http://bugs.winehq.org/show_bug.cgi?id=3816 Вот относящееся к проблеме: http://bugs.winehq.org/show_bug.cgi?id=2163 http://cvs.winehq.org/patch.py?id=13853 Сообщения и патчи на эту тему: http://www.winehq.com/hypermail/wine-patches/2004/04/0464.html http://www.winehq.com/hypermail/wine-patches/2005/02/0629.html http://www.winehq.com/hypermail/wine-patches/2004/01/0449.html http://www.winehq.org/pipermail/wine-patches/2005-March/016554.html http://www.winehq.org/pipermail/wine-bugs/2004-April/008877.html Реализация связи с _NET_WM_STATE_MAXIMIZED_HORZ уже была выполнена: http://www.winehq.com/hypermail/wine-patches/2004/12/0345.html http://www.winehq.com/hypermail/wine-devel/2004/12/0472.html http://www.winehq.org/pipermail/wine-devel/2004-December/032096.html http://www.winehq.com/hypermail/wine-devel/2004/07/0106.html Created attachment 22 [details]
Образец реализации в gtk
Created attachment 23 [details]
Тест на TopLevel окна (GetWindowPlacement)
Проблемы на похожую тему: http://bugs.winehq.org/show_bug.cgi?id=1719 http://bugs.winehq.org/show_bug.cgi?id=3134 http://bugs.winehq.org/show_bug.cgi?id=3211 http://bugs.winehq.org/show_bug.cgi?id=3651 http://bugs.winehq.org/show_bug.cgi?id=4917 http://bugs.winehq.org/show_bug.cgi?id=4960 http://bugs.winehq.org/show_bug.cgi?id=4964 1. При SetWindowPlacement не появляется в трее свёрнутое окно (то есть вообще не отображается). 2. Не изменяется флаг WS_MAXIMIZE при максимизации и минимизации окна пользователем. 3. Для MDI также не запоминает положение (см. программу DC). Какие-то патчи шли недавно. flag show 0 1 NORMAL (обычное) 2 3 WS_MAXIMIZE (максим) 0 2 WS_MINIMIZE (миним) 0 0 WS_HIDE (бывает ли?) при этом размер окна всегда нормализованного. Поведение зависит от is_window_managed (но не влияет на MDI) шспользуется IsZoomed (проверяющая на WS_MAXIMIZE) callback от шксов: X11DRV_UnmapNotify при убирании с экрана X11DRV_MapNotify при появлении на экране X11DRV_ConfigureNotify при изменении размера и положения WIN_SetStyle устанавливает стили Created attachment 24 [details]
Схема переходов и состояний окна
в 1.0.2 проблема с MDI-окнами решена. Патчи по максимизации и минимизации добавлены в 1.0.2 В 1.0.5 (0.9.28) подошли исправления, теперь минимизированное окно восстанавливается не в исходный размер, а в 32x32. Проблемы нет, по данной баге всё решено. Все новые проблемы в другой баге. Надо проверить в 1.0.9 |